Py学习  »  Django

使用特定状态代码在django中重定向

Bárbara Este • 5 年前 • 1710 次点击  

如果用户试图访问页面,我希望将其重定向到登录页面,但状态代码为401(未授权)。这样地:

if not 'logged_user' in request.session:
    return redirect('mqr_admin:login', status=401)

但是 redirect() 函数没有 status 参数作为函数 render() 有。我该怎么办?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/47117
 
1710 次点击  
文章 [ 2 ]  |  最新文章 5 年前
Daniel Roseman
Reply   •   1 楼
Daniel Roseman    6 年前

这不是你能做的。

在http中,重定向是代码3xx,主要是301和302。这就是浏览器知道如何进行重定向的原因。

如果返回4xx状态代码,浏览器会将其视为错误,而不是重定向。

Walucas
Reply   •   2 楼
Walucas    6 年前

使用 HttpResponse

from django.http import HttpResponse
def yourView(request):    
    return HttpResponse('401 Unauthorized', status=401)

在这里找到了解决方案: How do I return a 401 Unauthorized in Django?