有没有办法将异常映射到django中的HttpResponse对象?
例如,我想将自己的“UnauthorizedException”映射到HttpResponseForbidden响应对象,因此当我的视图引发该异常,而不是自动映射到500时,某些异常可以被视为401。
答案 0 :(得分:4)
如果您实现自己的实现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.")