我一直在关注如何设置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'),
我可以进入电子邮件地址输入页面,但是当我点击发送电子邮件时,它只会返回反向匹配错误。
任何人都可以帮助我吗?
感谢。
答案 0 :(得分:0)
你有没有更新到Django 1.6或更高版本?
如果是这样,您只需将uidb36
替换为uidb64
即可。这适用于模板中的{% url ... %}
调用,Python代码中的reverse()
调用以及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/'}),