重定向+ 403错误

Blu*_*gma 4 django redirect http-error http-status-code-403

我正在寻找一种类似的方法:

return HttpResponseForbiddenRedirect(reverse("view_name"))
Run Code Online (Sandbox Code Playgroud)

一个HttpResponse,它重定向到一个视图(带有它的名字),但仍然抛出403错误

我试着这样做:

class HttpResponseForbiddenRedirect(HttpResponse):
    def __init__(self, redirect_to):
        super(HttpResponseForbiddenRedirect, self).__init__()
        self['Location'] = iri_to_uri(redirect_to)
        self.status_code = 403
Run Code Online (Sandbox Code Playgroud)

但它没有用.出于某种原因,我不明白,我没有得到任何内容

Ste*_*lim 8

它不起作用,因为你不能有403响应,它被作为302响应.

HTTP规范告诉浏览器如何处理某些状态代码,所以浏览器得到一个403不会刻意去看看是否有,它会以302的方式做一个Location头.

如果你想将某人从X重定向到Y,因为他们不允许看到X,那么只需发出一个标准302,并做一些事情,比如设置一条消息(使用django.contrib.messages)来通知用户他们为什么这么做已被重定向,或将它们重定向到解释发生了什么的页面.