0

例外をdjangoのHttpResponseオブジェクトにマップする方法はありますか?

たとえば、自分の「UnauthorizedException」を HttpResponseForbidden 応答オブジェクトにマップして、ビューがその例外を発生させたときに、自動的に 500 にマップされるのではなく、特定の例外を 401 として処理できるようにしたいと考えています。

4

1 に答える 1

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.")
于 2012-07-31T18:52:16.723 に答える