MCPcopy Index your code
hub / github.com/encode/django-rest-framework / render

Method render

rest_framework/renderers.py:138–164  ·  view source on GitHub ↗

Renders data to HTML, using Django's standard template rendering. The template name is determined by (in order of preference): 1. An explicit .template_name set on the response. 2. An explicit .template_name set on this class. 3. The return result of callin

(self, data, accepted_media_type=None, renderer_context=None)

Source from the content-addressed store, hash-verified

136 charset = 'utf-8'
137
138 def render(self, data, accepted_media_type=None, renderer_context=None):
139 """
140 Renders data to HTML, using Django's standard template rendering.
141
142 The template name is determined by (in order of preference):
143
144 1. An explicit .template_name set on the response.
145 2. An explicit .template_name set on this class.
146 3. The return result of calling view.get_template_names().
147 """
148 renderer_context = renderer_context or {}
149 view = renderer_context['view']
150 request = renderer_context['request']
151 response = renderer_context['response']
152
153 if response.exception:
154 template = self.get_exception_template(response)
155 else:
156 template_names = self.get_template_names(response, view)
157 template = self.resolve_template(template_names)
158
159 if hasattr(self, 'resolve_context'):
160 # Fallback for older versions.
161 context = self.resolve_context(data, request, response)
162 else:
163 context = self.get_template_context(data, renderer_context)
164 return template.render(context, request=request)
165
166 def resolve_template(self, template_names):
167 return loader.select_template(template_names)

Callers

nothing calls this directly

Calls 5

get_template_namesMethod · 0.95
resolve_templateMethod · 0.95
get_template_contextMethod · 0.95
renderMethod · 0.45

Tested by

no test coverage detected