Django:django-registration反向查找失败

时间:2013-04-24 15:10:29

标签: python django django-registration

我正在使用django-registration并在我的settings.py中将登录和注销网址设置为

LOGIN_URL = '/users/login/'
LOGOUT_URL = '/users/logout/'

并在urls.py中设置了

url(r'^users/', include('registration.backends.default.urls', namespace='users')),

除非我尝试访问localhost,否则一切正常:8000 / users / passwords / reset出现错误

NoReverseMatch at /users/password/reset/
Reverse for 'django.contrib.auth.views.password_reset_done' with arguments '()' and keyword arguments '{}' not found.

但是,当我将此行添加到urls.py文件时,一切正常

(r'^users/', include('registration.auth_urls')),

这个解决方案令我感到困惑,因为registration.backends.default.urls包含行

(r'', include('registration.auth_urls')),

应该与添加到项目的urls.py文件中的行做同样的事情。为什么在项目的urls.py文件中添加该行会修复错误?

2 个答案:

答案 0 :(得分:1)

您正在为您的include提供namespace参数。除其他外,这导致您在模板中使用reverse()函数或{% url %}时也必须提供命名空间。

有关详细信息,请参阅https://docs.djangoproject.com/en/dev/topics/http/urls/#url-namespaces

答案 1 :(得分:0)

因为第一个在网址正则表达式中包含users/,这是您要尝试的内容。