Django-login_required不会更新URL

时间:2018-11-20 10:50:55

标签: python django login decorator

我目前正在使用@login_required django装饰器遇到问题。

实际上,使用@login_required可以正确重定向到我想要的页面,但是没有更新URL。

我已请求登录以访问“ http://127.0.0.1:8000/global_results/by_module/

@login_required
def results_by_module(request):
...

当我不登录而转到此页面时,我看到的页面是正确的页面(登录),但URL未更新(仍为http://127.0.0.1:8000/global_results/by_module/),而我看到了正确的重定向至Django日志的页面:

[20/Nov/2018 11:41:08] "GET /global_results/by_module/ HTTP/1.1" 302 0
[20/Nov/2018 11:41:08] "GET /accounts/login/?next=/global_results/by_module/ HTTP/1.1" 200 2055

刷新页面时,我可以看到“正确的”网址http://127.0.0.1:8000/accounts/login/?next=/global_results/by_module/

我做错了什么?我尝试使用

def results_by_module(request):
    if not request.user.is_authenticated:
        return redirect('accounts/login/?next=%s' % request.path)

def results_by_module(request):
    if not request.user.is_authenticated:
        return HttpResponseRedirect('accounts/login/?next=%s' % request.path)

具有始终相同的行为。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我已通过在我的所有HTML href标记中添加data-turbolinks="false"来解决此问题。

\ o /