如果 django 中重置密码电子邮件 link 错误,则找不到页面(404)错误
Page not found(404) error if reset password email link is wrong in django
我正在使用 django 默认密码重置 feature.I 通过电子邮件获取设置的新密码电子邮件 link。
如果 url 是正确的,那就没问题。现在,如果我输入错误或无效的 link,那么我会得到,
The current URL, account/reset/NTQ/4ox-7f135b9b74e7a4aa909fdd/, didn't match any of these.
accounts/urls.py --
url(r'^password_reset/$', auth_views.password_reset, name='password_reset'),
url(r'^password_reset/done/$', auth_views.password_reset_done, name='password_reset_done'),
url(r'^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
auth_views.password_reset_confirm, name='password_reset_confirm'),
#url(r'^reset/',auth_views.password_reset_confirm, name='empty_password_reset_confirm'),
url(r'^reset/done/$', auth_views.password_reset_complete, name='password_reset_complete'),
模板password_reset_confirm.html --
{% extends 'base.html' %}
{% block content %}
{% if validlink %}
<h3>Change password</h3>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Change password</button>
</form>
{% else %}
<p>
The password reset link was invalid, possibly because it has already been used.
Please request a new password reset.
</p>
{% endif %}
{% endblock %}
我试过--
url(r'^reset/',auth_views.password_reset_confirm, name='empty_password_reset_confirm')
但在那种情况下我得到 AssertionError at /account/reset/NTQ/4ox-7f135b9b74e7a4aa909fdd/
非常感谢任何帮助。
您必须修改 url 的正则表达式,使其适用于每个 url
url(r'^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,23})/$',
auth_views.password_reset_confirm, name='password_reset_confirm'),
对于您提到的示例 link,上面的方法将起作用。更多情况,您可以根据自己的需要,以同样的方式修改正则表达式。
当您的 url 使用错误的标记进入 link 时,它将抛出错误,因此您的模板的其他部分将出现。
我正在使用 django 默认密码重置 feature.I 通过电子邮件获取设置的新密码电子邮件 link。
如果 url 是正确的,那就没问题。现在,如果我输入错误或无效的 link,那么我会得到,
The current URL, account/reset/NTQ/4ox-7f135b9b74e7a4aa909fdd/, didn't match any of these.
accounts/urls.py --
url(r'^password_reset/$', auth_views.password_reset, name='password_reset'),
url(r'^password_reset/done/$', auth_views.password_reset_done, name='password_reset_done'),
url(r'^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
auth_views.password_reset_confirm, name='password_reset_confirm'),
#url(r'^reset/',auth_views.password_reset_confirm, name='empty_password_reset_confirm'),
url(r'^reset/done/$', auth_views.password_reset_complete, name='password_reset_complete'),
模板password_reset_confirm.html --
{% extends 'base.html' %}
{% block content %}
{% if validlink %}
<h3>Change password</h3>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Change password</button>
</form>
{% else %}
<p>
The password reset link was invalid, possibly because it has already been used.
Please request a new password reset.
</p>
{% endif %}
{% endblock %}
我试过--
url(r'^reset/',auth_views.password_reset_confirm, name='empty_password_reset_confirm')
但在那种情况下我得到 AssertionError at /account/reset/NTQ/4ox-7f135b9b74e7a4aa909fdd/
非常感谢任何帮助。
您必须修改 url 的正则表达式,使其适用于每个 url
url(r'^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,23})/$',
auth_views.password_reset_confirm, name='password_reset_confirm'),
对于您提到的示例 link,上面的方法将起作用。更多情况,您可以根据自己的需要,以同样的方式修改正则表达式。
当您的 url 使用错误的标记进入 link 时,它将抛出错误,因此您的模板的其他部分将出现。