1

我正在尝试让密码重置工作。我用了这个教程

Django 版本 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 %}

我的 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'})

我现在正在尝试几个小时,也许有人可以给我一个提示。提前谢谢了。

4

3 回答 3

1

Namespaces用于区分不同应用程序之间的相同 URL。因此,使用namespace. 例如,如果在项目 url 中将命名空间指定为:

url(r'^courses/', include('courses.urls', namespace="courses")),

你做:

<a href="{% url 'courses:lecturedetail' i.id %}">{{ i.title }}</a>

courses是一个命名空间。

于 2013-09-17T10:59:44.007 回答
0

好的,这些 url-lines 包含在根 url-conf 中的命名空间 url.conf 的一部分......好吧,删除命名空间选项现在解决了它。

于 2013-09-17T10:09:51.217 回答
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

于 2014-04-12T14:41:45.757 回答