例外を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.")