diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index b74df9a0b..19539b7dd 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -169,10 +169,16 @@ class TemplateHTMLRenderer(BaseRenderer): return loader.select_template(template_names) def get_template_context(self, data, renderer_context): + result = {k: renderer_context[k] for k in ('request', 'response', 'view')} + result['data'] = data + try: + result.update(data) # for compatibility + except TypeError: + pass response = renderer_context['response'] if response.exception: - data['status_code'] = response.status_code - return data + result['status_code'] = response.status_code + return result def get_template_names(self, response, view): if response.template_name: diff --git a/tests/test_renderers.py b/tests/test_renderers.py index 8271608e1..8bbd32524 100644 --- a/tests/test_renderers.py +++ b/tests/test_renderers.py @@ -615,6 +615,7 @@ class StaticHTMLRendererTests(TestCase): def test_static_renderer_with_exception(self): context = { + 'view': APIView(), 'response': Response(status=500, exception=True), 'request': Request(HttpRequest()) }