From e8c0766568cb20a5357c5e6823283f0c187b35b8 Mon Sep 17 00:00:00 2001 From: José Padilla Date: Sat, 13 Dec 2014 20:54:35 -0400 Subject: Support handlers with and without context --- rest_framework/views.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'rest_framework/views.py') diff --git a/rest_framework/views.py b/rest_framework/views.py index 07e71393..3ece66e6 100644 --- a/rest_framework/views.py +++ b/rest_framework/views.py @@ -2,6 +2,7 @@ Provides an APIView class that is the base of all views in REST framework. """ from __future__ import unicode_literals +import inspect from django.core.exceptions import PermissionDenied from django.http import Http404 @@ -369,8 +370,13 @@ class APIView(View): else: exc.status_code = status.HTTP_403_FORBIDDEN - context = self.get_renderer_context() - response = self.settings.EXCEPTION_HANDLER(exc, context) + exception_handler = self.settings.EXCEPTION_HANDLER + + if 'context' in inspect.getargspec(exception_handler).args: + context = self.get_renderer_context() + response = exception_handler(exc, context) + else: + response = exception_handler(exc) if response is None: raise -- cgit v1.2.3