Шаблон не существует для представлений аутентификации django

Здесь новичок в Django. Я просто пытаюсь сделать форму смены пароля, используя систему аутентификации Django. Я использовал свои собственные представления для функций входа и выхода. Я прочитал docs. и для формы смены пароля, как было сказано, я создал папку registration в каталоге templates и создал html файл шаблона с именем password_change_form.html, но когда я перехожу по url http://127.0.0.1:8000/accounts/password_change, я продолжаю получать ошибку TemplateDoesNotExist at /accounts/login/. Вот структура моего приложения:

и мой файл urls.py:

from django.urls import path,include
from django.contrib.auth import views as auth_views
from . import views

urlpatterns = [
    path('',views.home_page,name='home_page'),
    path('register',views.registration_view,name='registration_view'),
    path('login',views.login_view,name='login_view'),
    path('logout',views.logout_view,name='logout_view'),
    path('accounts/',include('django.contrib.auth.urls')),
]

Что и почему это происходит? Пожалуйста, помогите. Буду очень признателен.

Для облегчения поиска информации рекомендуется просмотреть файлы django.contrib.auth. Шаблон Django по умолчанию для сброса пароля - templates/registration/password_reset_form.html. В результате, имя вашего файла должно быть password_reset_form.html. Для более легкого понимания этого, как я уже говорил, вы можете посмотреть на django.contrib.auth файлы.

Этот файл urls.py является основной системой администрирования django:

from django.contrib.auth import views
from django.urls import path

urlpatterns = [
    path('login/', views.LoginView.as_view(), name='login'),
    path('logout/', views.LogoutView.as_view(), name='logout'),

    path('password_change/', views.PasswordChangeView.as_view(), name='password_change'),
    path('password_change/done/', views.PasswordChangeDoneView.as_view(), name='password_change_done'),

    path('password_reset/', views.PasswordResetView.as_view(), name='password_reset'),
    path('password_reset/done/', views.PasswordResetDoneView.as_view(), name='password_reset_done'),
    path('reset/<uidb64>/<token>/', views.PasswordResetConfirmView.as_view(), name='password_reset_confirm'),
    path('reset/done/', views.PasswordResetCompleteView.as_view(), name='password_reset_complete'),
]

Поскольку представления системы регистрации Django написаны в формате Class Based, вам нужно поместить их в формат .as_view(). Вы можете скопировать отсюда все урлы, связанные со сбросом пароля, и поместить их в ваш urls.py и продолжить персонализацию.

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