如果用户试图访问某个页面,我希望他重定向到登录页面,但状态代码为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状态代码,浏览器将把它视为错误,而不是重定向。