Django将异常映射到HttpResponse

时间:2012-07-31 18:47:08

标签: python django

有没有办法将异常映射到django中的HttpResponse对象?

例如,我想将自己的“UnauthorizedException”映射到HttpResponseForbidden响应对象,因此当我的视图引发该异常,而不是自动映射到500时,某些异常可以被视为401。

1 个答案:

答案 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.")