The current path, account/login/, matched the last one
🙌🏻
Мне надо по адресу http://127.0.0.1:8000/account/login/ отобразить форму авторизации, но не удаётся, 404.
Page not found (404)
“....../PycharmProjects/shoppinglist/account/login” не существует
Request Method: GET
Request URL: http://127.0.0.1:8000/account/login/
Raised by: django.views.static.serve
Using the URLconf defined in ecosys.urls, Django tried these URL patterns, in this order:
admin/
[name='index']
topics/ [name='topics']
topics/<int:topic_id>/ [name='topic']
categories/ [name='category']
categories/<int:category_id>/ [name='in_category']
^(?P<path>.*)$
Приложение account.
settings.py
INSTALLED_APPS = [
# My apps
'account.apps.AccountConfig',
'realestate.apps.RealestateConfig',
вот что я добавил в urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include("realestate.urls")),
path('account/', include("account.urls")),
]
собственно делаю по аналогии с приложением realestate
account/urls.py
"""Определяет схемы URL для account."""
from django.urls import path
from . import views
from django.conf import settings
from django.conf.urls.static import static
app_name = 'account'
urlpatterns = [
# Login page
path('login/', views.user_login, name='login'),
]
далее account/views.py
from django.http import HttpResponse
from django.shortcuts import render
from django.contrib.auth import authenticate, login
from .forms import LoginForm
def user_login(request):
"""Форма авторизации"""
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
user = authenticate(username=cd['username'], password=cd['password'])
if user is not None:
if user.is_active:
login(request, user)
return HttpResponse('Authenticated successfully')
else:
return HttpResponse('Disabled account')
else:
return HttpResponse('Invalid login')
else:
form = LoginForm()
return render(request, 'login.html', {'form': form})
account/forms.py
from django import forms
class LoginForm(forms.Form):
username = forms.CharField()
password = forms.CharField(widget=forms.PasswordInput)
и все это должен отобразить login.html
{% extends "base.html" %}
{% block title %}Log-in{% endblock %}
{% block content %}
<h1>Log-in</h1>
<p>Please, use the following form to log-in:</p>
<form action="." method="post">
{{ form.as_p }}
{% csrf_token %}
<p><input type="submit" value="Log-in"></p>
</form>
{% endblock %}
Заранее всем спасибо, что дочитали до конца. Надеюсь на помощь!