0

我一直在关注一些关于如何设置 Django 电子邮件重置视图的在线教程,但我仍然收到反向匹配错误:

Reverse for 'django.contrib.auth.views.password_reset_confirm' with arguments '()' and keyword arguments '{'uidb36': '2', 'token': '3fk-e9d14405e0aaf252475e'}' not found

我的网址设置是这样的:

url(r'^login_retrieval/$', 'django.contrib.auth.views.password_reset', 
    {'post_reset_redirect' : '/login_retrieval_done/',
     'template_name' : 'core/password_reset_form.html'}),
url(r'^login_retrieval_done/', 'django.contrib.auth.views.password_reset_done'),
url(r'^password_reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$', 'django.contrib.auth.views.password_reset_confirm', 
    {'post_reset_redirect' : '/user/password/done/'}),
url(r'^user/password/done/$', 
    'django.contrib.auth.views.password_reset_complete'),

我可以进入电子邮件地址输入页面,但是当我单击发送电子邮件时,它只会返回反向匹配错误。

谁能帮我?

谢谢。

4

1 回答 1

0

你更新到 Django 1.6 或更高版本了吗?

如果是这样,您只需替换uidb36uidb64. 这适用{% url ... %}于模板中的reverse()调用、Python 代码中的调用以及 urls.py 中的正则表达式。

从您的 urls.py 中选择一个示例:

url(r'^password_reset/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$', 'django.contrib.auth.views.password_reset_confirm', 
    {'post_reset_redirect' : '/user/password/done/'}),

请参阅Django 1.6 发行说明

于 2014-10-23T15:49:27.507 回答