首页 > 解决方案 > 第一次尝试后未加载 Django 的密码重置 URL 自定义

问题描述

我正在使用 Django 的密码重置 URL,并为它们创建了自己的模板,但是在我输入电子邮件地址后,它会将我重定向到默认模板,而不是重定向到我的自定义模板。

网址.py

path('password_reset/',
auth_views.PasswordResetView.as_view(template_name="authsystem/password_reset.html"),
name='password_reset'),

path('password_reset/done',
auth_views.PasswordResetDoneView.as_view(template_name="authsystem/password_reset_sent.html"),
name='password_reset_done'),

path('reset/<uidb64>/<token>/',
auth_views.PasswordResetConfirmView.as_view(template_name="authsystem/password_reset_form.html"),
name='password_reset_confirm'),

path('reset/done/',
auth_views.PasswordResetCompleteView.as_view(template_name="authsystem/password_reset_done.html"),
name='password_reset_complete'),

在它从“password_reset.html”移动之后,它应该呈现“password_reset_sent.html”,但它会呈现 Django 的默认模板。

模板文件夹

标签: pythondjangobackend

解决方案


在不更改 url 模式的情况下,您可以在以下位置为 PasswordResetDoneView 创建自定义模板:templates/registration/password_reset_done.html。

否则,您可以将 PasswordResetDoneView 子类化:

意见

class CustomPasswordResetDoneView(PasswordResetDoneView):
    template_name = 'authsystem/password_reset_sent.html'

网址

path('password_reset/done', CustomPasswordResetDoneView.as_view(), name='password_reset_done'),

推荐阅读