我的视图中有一个具有装饰器login_required
的功能。未经过身份验证的用户会自动将我重定向到
babylon/?next=prot/ats2
但它应该是:
babylon/prot/?next=prot/ats2
因为babylon/prot
是我项目的根(它的设置与我的apache配置中的相同)。
LOGIN_URL
似乎不适用于此问题。
我该如何解决这个问题?
提前致谢
答案 0 :(得分:1)
从Django 1.5开始,你可以LOGIN_URL
作为url模式的名称。因此,如果您有一个名为“login”的网址模式,您应该能够:
LOGIN_URL = 'login'
如果您使用的是Django 1.4,则可以使用reverse_lazy
from django.core.urlresolvers import reverse_lazy
LOGIN_URL = reverse_lazy('login')
如果这不起作用,您可能需要更新您的问题以包含您的apache配置的相关部分。
答案 1 :(得分:0)
来自Django文档:
from django.contrib.auth.decorators import login_required
def my_view(request):
# ...
my_view = login_required(redirect_field_name='redirect_to')(my_view)
或者您也可以使用:
settings.py
LOGIN_URL = '/where/'
在文档中我们可以读到:
LOGIN_URL
Default: '/accounts/login/'
The URL where requests are redirected for login, especially when using the login_required() decorator.
我不知道它不起作用。