如何在django中提出禁止回复?

我想要做以下事情:

raise HttpResponseForbidden() 

但我得到的错误:

 exceptions must be old-style classes or derived from BaseException, not HttpResponseForbidden 

我应该怎么做?

像任何其他响应一样从视图中返回。

 from django.http import HttpResponseForbidden return HttpResponseForbidden() 

如果你想提出exception,你可以使用:

 from django.core.exceptions import PermissionDenied raise PermissionDenied 

这是logging在这里:

https://docs.djangoproject.com/en/stable/ref/views/#the-403-http-forbidden-view

相对于回应HttpResponseForbidden ,引发PermissionDenied会导致使用403.html模板呈现错误,或者您可以使用中间件来显示自定义“禁止”视图。

正如伊格纳西奥·巴斯克斯 – 艾布拉姆斯所说:

 from django.http import HttpResponseForbidden ... return HttpResponseForbidden() 

然后,还提供一个名为“403.html”的合适的模板

PS应该是一个评论,但我没有足够的声誉发表评论