diff --git a/rest_framework/views.py b/rest_framework/views.py index 41d108e53..823d0083e 100644 --- a/rest_framework/views.py +++ b/rest_framework/views.py @@ -425,10 +425,8 @@ class APIView(View): else: exc.status_code = status.HTTP_403_FORBIDDEN - exception_handler = self.settings.EXCEPTION_HANDLER - context = self.get_exception_handler_context() - response = exception_handler(exc, context) + response = self._get_error_response(exc, context) if response is None: raise @@ -436,6 +434,9 @@ class APIView(View): response.exception = True return response + def _get_error_response(self, exc, context): + return self.settings.EXCEPTION_HANDLER(exc, context) + # Note: Views are made CSRF exempt from within `as_view` as to prevent # accidental removal of this exemption in cases where `dispatch` needs to # be overridden.