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



如果用户试图访问某个页面,我希望他重定向到登录页面,但状态代码为401(未经授权(。像这样:

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

但是redirect()函数不像render()函数那样具有status参数。我该怎么办?

使用HttpResponse

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

解决方案在这里找到:如何在Django中返回401未授权?

这不是你能做的。

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

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

相关内容

最新更新