页面没有找到(404)错误,如果重置密码电子邮件链接是错误的Django
我正在使用django默认密码重置功能。我通过电子邮件获得设置新密码电子邮件链接。页面没有找到(404)错误,如果重置密码电子邮件链接是错误的Django
如果网址是正确的,那就好了。现在,如果我把一个错误的或无效的链接,然后我得到的,
The current URL, account/reset/NTQ/4ox-7f135b9b74e7a4aa909fdd/, didn't match any of these.
账户/ 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'),
你提到的上面将工作的例子链接。根据您的要求,您可以按照相同的方式修改正则表达式以满足更多的案例。
当你的网址转到错误标记的链接时,它会抛出错误,因此模板的其他部分将显示出来。
辉煌。有效。但我不知道为什么{1,20}不是{1,23}。这是我能看到的唯一改变。 –
他们必须将其设置为全部。你可以随意修改。 –
您已经描述了当前的预期行为。但是你想要什么呢? –
如果url是错误的,它不应该显示404错误。相反,它应该显示'password_reset_confirm.html'文件的'else'部分。 –