有没有办法将异常映射到 Django 中的 HttpResponse 对象?
例如,我想将我自己的“UnauthorizedException”映射到 HttpResponseForbidden 响应对象,因此当我的视图引发该异常时,而不是自动映射到 500,某些异常可以被视为 401。
如果您实现自己的实现该process_exception
方法的中间件,则可以。一个简单的例子:
from django.http import HttpResponseForbidden
from app.exceptions import UnauthorizedException
class UnauthorizedAccessMiddleware(object):
def process_exception(self, request, exception):
if isinstance(exception, UnauthorizedException):
return HttpResponseForbidden("You are not authorized to access that page.")