我目前正在使用@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)
具有始终相同的行为。
非常感谢您的帮助。
答案 0 :(得分:0)
我已通过在我的所有HTML href标记中添加data-turbolinks="false"
来解决此问题。
\ o /