Шаблон не существует для представлений аутентификации 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 и продолжить персонализацию.