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 %}

Заранее всем спасибо, что дочитали до конца. Надеюсь на помощь!

Вернуться на верх