16
16
from django .core .exceptions import ImproperlyConfigured
17
17
from django .core .paginator import Page
18
18
from django .http .multipartparser import parse_header
19
- from django .template import Template , loader
19
+ from django .template import engines , loader
20
20
from django .test .client import encode_multipart
21
21
from django .utils import six
22
22
from django .utils .html import mark_safe
23
23
24
24
from rest_framework import VERSION , exceptions , serializers , status
25
25
from rest_framework .compat import (
26
26
INDENT_SEPARATORS , LONG_SEPARATORS , SHORT_SEPARATORS , coreapi ,
27
- pygments_css , template_render
27
+ pygments_css
28
28
)
29
29
from rest_framework .exceptions import ParseError
30
30
from rest_framework .request import is_form_media_type , override_method
@@ -173,7 +173,7 @@ def render(self, data, accepted_media_type=None, renderer_context=None):
173
173
context = self .resolve_context (data , request , response )
174
174
else :
175
175
context = self .get_template_context (data , renderer_context )
176
- return template_render ( template , context , request = request )
176
+ return template . render ( context , request = request )
177
177
178
178
def resolve_template (self , template_names ):
179
179
return loader .select_template (template_names )
@@ -206,8 +206,9 @@ def get_exception_template(self, response):
206
206
return self .resolve_template (template_names )
207
207
except Exception :
208
208
# Fall back to using eg '404 Not Found'
209
- return Template ('%d %s' % (response .status_code ,
210
- response .status_text .title ()))
209
+ body = '%d %s' % (response .status_code , response .status_text .title ())
210
+ template = engines ['django' ].from_string (body )
211
+ return template
211
212
212
213
213
214
# Note, subclass TemplateHTMLRenderer simply for the exception behavior
@@ -239,7 +240,7 @@ def render(self, data, accepted_media_type=None, renderer_context=None):
239
240
context = self .resolve_context (data , request , response )
240
241
else :
241
242
context = self .get_template_context (data , renderer_context )
242
- return template_render ( template , context , request = request )
243
+ return template . render ( context , request = request )
243
244
244
245
return data
245
246
@@ -347,7 +348,7 @@ def render_field(self, field, parent_style):
347
348
348
349
template = loader .get_template (template_name )
349
350
context = {'field' : field , 'style' : style }
350
- return template_render ( template , context )
351
+ return template . render ( context )
351
352
352
353
def render (self , data , accepted_media_type = None , renderer_context = None ):
353
354
"""
@@ -368,7 +369,7 @@ def render(self, data, accepted_media_type=None, renderer_context=None):
368
369
'form' : form ,
369
370
'style' : style
370
371
}
371
- return template_render ( template , context )
372
+ return template . render ( context )
372
373
373
374
374
375
class BrowsableAPIRenderer (BaseRenderer ):
@@ -625,7 +626,7 @@ def get_filter_form(self, data, view, request):
625
626
626
627
template = loader .get_template (self .filter_template )
627
628
context = {'elements' : elements }
628
- return template_render ( template , context )
629
+ return template . render ( context )
629
630
630
631
def get_context (self , data , accepted_media_type , renderer_context ):
631
632
"""
@@ -705,7 +706,7 @@ def render(self, data, accepted_media_type=None, renderer_context=None):
705
706
706
707
template = loader .get_template (self .template )
707
708
context = self .get_context (data , accepted_media_type , renderer_context )
708
- ret = template_render ( template , context , request = renderer_context ['request' ])
709
+ ret = template . render ( context , request = renderer_context ['request' ])
709
710
710
711
# Munge DELETE Response code to allow us to return content
711
712
# (Do this *after* we've rendered the template so that we include
@@ -741,7 +742,7 @@ def render(self, data, accepted_media_type=None, renderer_context=None):
741
742
742
743
template = loader .get_template (self .template )
743
744
context = self .get_context (data , accepted_media_type , renderer_context )
744
- ret = template_render ( template , context , request = renderer_context ['request' ])
745
+ ret = template . render ( context , request = renderer_context ['request' ])
745
746
746
747
# Creation and deletion should use redirects in the admin style.
747
748
if response .status_code == status .HTTP_201_CREATED and 'Location' in response :
@@ -819,7 +820,7 @@ def get_context(self, data, request):
819
820
def render (self , data , accepted_media_type = None , renderer_context = None ):
820
821
template = loader .get_template (self .template )
821
822
context = self .get_context (data , renderer_context ['request' ])
822
- return template_render ( template , context , request = renderer_context ['request' ])
823
+ return template . render ( context , request = renderer_context ['request' ])
823
824
824
825
825
826
class SchemaJSRenderer (BaseRenderer ):
@@ -835,7 +836,7 @@ def render(self, data, accepted_media_type=None, renderer_context=None):
835
836
template = loader .get_template (self .template )
836
837
context = {'schema' : mark_safe (schema )}
837
838
request = renderer_context ['request' ]
838
- return template_render ( template , context , request = request )
839
+ return template . render ( context , request = request )
839
840
840
841
841
842
class MultiPartRenderer (BaseRenderer ):
0 commit comments