2009-07-06 76 views
6

目前,我settings模塊我有這樣的:Django的:動態LOGIN_URL變量

LOGIN_URL = '/login' 

如果我決定更改登錄URL中urls.py,我必須在這裏改變它。有沒有更動態的方式來做到這一點?

回答

7

設置IS您正在設置動態登錄網址。請務必在urls.py中從settings.py導入LOGIN_URL,然後使用它。

from projectname.settings import LOGIN_URL 
+0

釘,但我怎麼它放到`urlpatterns`? :/ – 2009-07-06 20:12:32

+1

從django.conf.urls.defaults導入* 從projectname.settings導入LOGIN_URL URL模式=模式( '', (R '^文章/ 2003 /' + LOGIN_URL + '/ $',「消息。 views.special_case_2003'), – AlbertoPL 2009-07-06 20:22:14

4

這對我的作品......與LOGIN_URL = '/帳號/登錄'

如果問題是是的settings.py有...

LOGIN_URL = '/login/' # <-- remember trailing slash! 

.. 。但是,urls.py想...

url(r'^login/$', 
     auth_views.login, {'template_name': '/foo.html'}, 
      name='auth_login'), 

那麼做到這一點:

# - up top in the urls.py 
from django.conf import settings 

# - down below, in the list of URLs ... 
# - blindly remove the leading '/' & trust that you have a trailing '/' 
url(r'^%s$' % settings.LOGIN_URL[1:], 
     auth_views.login, {'template_name': '/foo.html'}, 
      name='auth_login'), 

如果你不能信任任何人編輯您的settings.py ......然後檢查LOGIN_URL startswith &剪斷它關閉,或者不是斜線。 ...然後檢查斜線LOGIN_URL的endsWith斜線&釘它,或者不 ...和,然後在「$」