1515from django .core .exceptions import ImproperlyConfigured
1616from django .core .paginator import Page
1717from django .http .multipartparser import parse_header
18- from django .template import Context , RequestContext , Template , loader
18+ from django .template import Template , loader
1919from django .test .client import encode_multipart
2020from django .utils import six
2121
2222from rest_framework import VERSION , exceptions , serializers , status
2323from rest_framework .compat import (
24- INDENT_SEPARATORS , LONG_SEPARATORS , SHORT_SEPARATORS
24+ INDENT_SEPARATORS , LONG_SEPARATORS , SHORT_SEPARATORS , template_render
2525)
2626from rest_framework .exceptions import ParseError
2727from rest_framework .request import is_form_media_type , override_method
@@ -168,15 +168,15 @@ def render(self, data, accepted_media_type=None, renderer_context=None):
168168 template = self .resolve_template (template_names )
169169
170170 context = self .resolve_context (data , request , response )
171- return template . render ( context )
171+ return template_render ( template , context , request = request )
172172
173173 def resolve_template (self , template_names ):
174174 return loader .select_template (template_names )
175175
176176 def resolve_context (self , data , request , response ):
177177 if response .exception :
178178 data ['status_code' ] = response .status_code
179- return RequestContext ( request , data )
179+ return data
180180
181181 def get_template_names (self , response , view ):
182182 if response .template_name :
@@ -230,7 +230,7 @@ def render(self, data, accepted_media_type=None, renderer_context=None):
230230 request = renderer_context ['request' ]
231231 template = self .get_exception_template (response )
232232 context = self .resolve_context (data , request , response )
233- return template . render ( context )
233+ return template_render ( template , context , request = request )
234234
235235 return data
236236
@@ -333,8 +333,8 @@ def render_field(self, field, parent_style):
333333 template_name = style ['template_pack' ].strip ('/' ) + '/' + style ['base_template' ]
334334
335335 template = loader .get_template (template_name )
336- context = Context ( {'field' : field , 'style' : style })
337- return template . render ( context )
336+ context = {'field' : field , 'style' : style }
337+ return template_render ( template , context )
338338
339339 def render (self , data , accepted_media_type = None , renderer_context = None ):
340340 """
@@ -350,11 +350,11 @@ def render(self, data, accepted_media_type=None, renderer_context=None):
350350 template_pack = style ['template_pack' ].strip ('/' )
351351 template_name = template_pack + '/' + self .base_template
352352 template = loader .get_template (template_name )
353- context = Context ( {
353+ context = {
354354 'form' : form ,
355355 'style' : style
356- })
357- return template . render ( context )
356+ }
357+ return template_render ( template , context )
358358
359359
360360class BrowsableAPIRenderer (BaseRenderer ):
@@ -600,8 +600,8 @@ def get_filter_form(self, data, view, request):
600600 return
601601
602602 template = loader .get_template (self .filter_template )
603- context = Context ( {'elements' : elements })
604- return template . render ( context )
603+ context = {'elements' : elements }
604+ return template_render ( template , context )
605605
606606 def get_context (self , data , accepted_media_type , renderer_context ):
607607 """
@@ -672,8 +672,7 @@ def render(self, data, accepted_media_type=None, renderer_context=None):
672672
673673 template = loader .get_template (self .template )
674674 context = self .get_context (data , accepted_media_type , renderer_context )
675- context = RequestContext (renderer_context ['request' ], context )
676- ret = template .render (context )
675+ ret = template_render (template , context , request = renderer_context ['request' ])
677676
678677 # Munge DELETE Response code to allow us to return content
679678 # (Do this *after* we've rendered the template so that we include
@@ -709,8 +708,7 @@ def render(self, data, accepted_media_type=None, renderer_context=None):
709708
710709 template = loader .get_template (self .template )
711710 context = self .get_context (data , accepted_media_type , renderer_context )
712- context = RequestContext (renderer_context ['request' ], context )
713- ret = template .render (context )
711+ ret = template_render (template , context , request = renderer_context ['request' ])
714712
715713 # Creation and deletion should use redirects in the admin style.
716714 if (response .status_code == status .HTTP_201_CREATED ) and ('Location' in response ):
0 commit comments