6

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

LOGIN_URL = '/login'

如果我决定更改 中的登录 URL urls.py,我也必须在此处进行更改。有没有更动态的方式来做到这一点?

4

2 回答 2

7

设置您设置动态登录网址的位置。LOGIN_URL确保从settings.py您的导入urls.py并改用它。

from projectname.settings import LOGIN_URL
于 2009-07-06T19:58:53.393 回答
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 是否以斜杠结尾并附加或不附加...然后附加'$'

于 2009-07-06T23:31:31.170 回答