我正在尝试重置密码才能正常工作。我使用了this tutorial
Django Version 1.5.1
当我输入电子邮件地址并点击“重置密码”按钮时,我收到一条错误消息:
Exception Type: NoReverseMatch
Exception Value: Reverse for 'django.contrib.auth.views.password_reset_confirm' with arguments '()' and keyword arguments '{u'uidb36': u'q', u'token': u'3ky-999ef6e52ef0743cdb2a'}' not found.
原因似乎是:
{{ protocol }}://{{ domain }}{% url 'django.contrib.auth.views.password_reset_confirm' uidb36=uid token=token %}
my urls.py:
url(r'^user/password/reset/$', 'django.contrib.auth.views.password_reset', {'post_reset_redirect' : 'user/password/reset/done/','template_name': 'main/registration/password_reset_form.html'}, name="password_reset"),
url(r'^user/password/reset/done/$', 'django.contrib.auth.views.password_reset_done', {'template_name': 'main/registration/password_reset_done.html'}),
url(r'^user/password/reset/(?P<uidb36>[0-9A-Za-z]+)/(?P<token>.+)/$', 'django.contrib.auth.views.password_reset_confirm', {'template_name': 'main/registration/password_reset_confirm.html', 'post_reset_redirect' : 'user/password/done/'}),
url(r'^user/password/done/$', 'django.contrib.auth.views.password_reset_complete',{'template_name': 'main/registration/password_reset_complete.html'})
我现在正在尝试几个小时,也许有人可以给我一个提示。非常感谢提前。
答案 0 :(得分:1)
Namespaces
用于区分不同应用程序之间的相同URL。因此,使用namespace
始终是一种非常好的做法。例如,如果在项目URL中将名称空间指定为:
url(r'^courses/', include('courses.urls', namespace="courses")),
你这样做:
<a href="{% url 'courses:lecturedetail' i.id %}">{{ i.title }}</a>
此处courses
是命名空间。
答案 1 :(得分:0)
确定这些url-lines,其中包含在根url-conf中的命名空间url.conf的一部分......好了,删除命名空间选项现在解决了它。
答案 2 :(得分:0)
您应该在urls.py
:url(r'^accounts/', include('django.contrib.auth.urls')),
中加入以下一行,因为django-regisration会调用django.contrib.auth
中的某些功能。
我已经为django-registration创建了一个完整的演示,请参阅https://github.com/xiaohanyu/django-registration-demo。