django 身份验证视图的模板不存在
Template does not exist for django authentication views
这里是 Django 新手。我只是想使用 Django 身份验证系统制作密码更改表单。我使用自己的视图来实现登录和注销功能。我读了 docs
对于提到的密码更改表单,我在我的模板目录中创建了一个注册文件夹并创建了一个名为 password_change_form.html
的模板 html 文件,但是当我转到 url http://127.0.0.1:8000/accounts/password_change
,我不断收到错误 TemplateDoesNotExist at /accounts/login/
。这是我的应用程序结构:
和我的 urls.py 文件:
from django.contrib import auth
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/password_change/', auth_views.PasswordChangeView.as_view(), name='password_change'),
]
这是怎么回事,为什么会这样?请帮忙。我将不胜感激。
建议您查看您的 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注册系统的views是写成ClassBased格式的,所以需要把它们写成.as_view()格式。
您可以从这里复制所有与密码重置相关的 url 并将其放入您的 urls.py 并继续个性化。
这里是 Django 新手。我只是想使用 Django 身份验证系统制作密码更改表单。我使用自己的视图来实现登录和注销功能。我读了 docs
对于提到的密码更改表单,我在我的模板目录中创建了一个注册文件夹并创建了一个名为 password_change_form.html
的模板 html 文件,但是当我转到 url http://127.0.0.1:8000/accounts/password_change
,我不断收到错误 TemplateDoesNotExist at /accounts/login/
。这是我的应用程序结构:
和我的 urls.py 文件:
from django.contrib import auth
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/password_change/', auth_views.PasswordChangeView.as_view(), name='password_change'),
]
这是怎么回事,为什么会这样?请帮忙。我将不胜感激。
建议您查看您的 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注册系统的views是写成ClassBased格式的,所以需要把它们写成.as_view()格式。 您可以从这里复制所有与密码重置相关的 url 并将其放入您的 urls.py 并继续个性化。