Django:动态LOGIN_URL变量

时间:2009-07-06 19:55:03

标签: python django django-urls

目前,在我的settings模块中,我有这个:

LOGIN_URL = '/login'

如果我决定更改urls.py中的登录网址,我也必须在此更改。有没有更有活力的方法呢?

2 个答案:

答案 0 :(得分:7)

设置 IS 您要设置动态登录网址的位置。请务必从LOGIN_URL中的settings.py导入urls.py,然后使用该from projectname.settings import LOGIN_URL

{{1}}

答案 1 :(得分:4)

这适用于我......使用LOGIN_URL ='/ accounts / login'

如果问题那个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以斜线开头剪断或不剪断。 ...然后检查尾部斜线LOGIN_URL是否以斜杠&amp;坚持或不坚持 ......然后加上'$'