2013-04-24 43 views
1

我使用Django的註冊和失敗在我的settings.py我已經設置了登錄和註銷網址爲的Django:Django的註冊反向查找

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

,並在urls.py我已經設置

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

一切正常,只是當我嘗試了精細到localhost:8000 /用戶/密碼/重置有錯誤

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文件可修復錯誤?

回答

0

因爲第一個在url正則表達式中包含users/,這正是你想要達到的。

+0

是的,但沒有registration.backends.default.urls已經在users/url包含registration.auth_urls? – bab 2013-04-26 00:25:06

1

您正在爲您的包含提供namespace參數。除此之外,這導致您在模板中使用reverse()函數或{% url %}時也必須提供名稱空間。

查看https://docs.djangoproject.com/en/dev/topics/http/urls/#url-namespaces瞭解更多信息。

+0

registration.backends.default.urls中包含的registration.auth_urls是否也提供了一個名稱空間? – bab 2013-04-26 00:26:10

+0

那麼是否沒有辦法從名稱空間的應用中包含auth url? – Fafaman 2014-12-09 15:04:00