我正在关注文档,当我点击页面重新启动密码时,我收到NoReverseMatch错误。
urls.py:
(r'^resetpassword/passwordsent/$', 'django.contrib.auth.views.password_reset_done'),
(r'^resetpassword/$', 'django.contrib.auth.views.password_reset', name="reset_password"),
(r'^reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>,+)/$', 'django.contrib.auth.views.password_reset_confirm'),
(r'^reset/done/$', 'django.contrib.auth.views.password_reset_complete'),
以下是在我的base.html模板中调用此网址的代码:
<a href="{% url 'reset_password' %}">Reset Password</a>
我一直在这工作几个小时。 (我是初学者!)非常感谢任何帮助,谢谢!
答案 0 :(得分:11)
将网址名称添加到urls.py
中password_reset_done
的条目
(r'^resetpassword/passwordsent/$', 'django.contrib.auth.views.password_reset_done', name='password_reset_done'),
在内部,password_reset
视图使用reverse('password_reset_done')
查找重置密码后发送给用户的位置。 reverse
可以采用函数名称的字符串表示形式,但它需要匹配模式中使用的表单 - 在这种情况下,它不能匹配,因为在模式中指定了完整路径但在反向模式中没有指定呼叫。您可以从模块中导入视图,并在模式中仅使用它们的名称,或者如果您更喜欢name
参数,则可以在模式中使用前缀。
https://docs.djangoproject.com/en/dev/ref/urlresolvers/#django.core.urlresolvers.reverse了解reverse
的详细信息。