如何将密码重置指向我自己的模板?

时间:2018-03-20 13:34:51

标签: django

在我的urls.py中,我有:

from django.contrib.auth import views as auth_views
urlpatterns += [
    url("^reset-password/$", auth_views.password_reset, 
        {
            "template_name": "pages/password_reset_form.html"
        },
        name="reset_pw"
    ),
]

我的password_reset_form.html有这个:

            <form id="reset-pw-form" name="resetPWForm" method="post" action="{% url 'reset_pw' %}">
                {% csrf_token %}
                <input
                    id="id_email"
                    type="email"
                    placeholder="Enter email"
                    name="email"
                    required>
                <button type="submit" >Submit</button>
            </form>

当您点击表单上的提交按钮时,它会发送到/reset-password,然后获取/password_reset/done/。如何让它获得/reset-password/done并加载my_template.html呢?

1 个答案:

答案 0 :(得分:2)

有两种方法:

:一种。使用自定义类

1)创建一个自定义网址来处理在views.py

中制作的自定义类
url(r'^reset/done/$', views.PasswordResetComplete.as_view(),name='password_reset_complete'),

2)导入PasswordResetCompleteView并在自定义类上继承它。传递template_name =“Your template.html”

from django.contrib.auth.views import PasswordResetCompleteView

class PasswordResetComplete(PasswordResetCompleteView):
    template_name = "template name"

<强> B中。覆盖模板

1)在django模板文件夹中创建一个注册文件夹

2)使用名称“password_reset_confirm.html”创建自定义模板,为什么这个名称因为django reset done视图具有相同的模板名称,将被覆盖。