aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/views.py
diff options
context:
space:
mode:
authorJosé Padilla2014-12-13 20:54:35 -0400
committerJosé Padilla2014-12-13 20:54:35 -0400
commite8c0766568cb20a5357c5e6823283f0c187b35b8 (patch)
tree6392f3a4840c5da0a270972b3721409ff89f6db7 /rest_framework/views.py
parent0d109c90a74bc575efa6d497a6501aef2b837983 (diff)
downloaddjango-rest-framework-e8c0766568cb20a5357c5e6823283f0c187b35b8.tar.bz2
Support handlers with and without context
Diffstat (limited to 'rest_framework/views.py')
-rw-r--r--rest_framework/views.py10
1 files changed, 8 insertions, 2 deletions
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