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

Method render

rest_framework/renderers.py:767–805  ·  view source on GitHub ↗
(self, data, accepted_media_type=None, renderer_context=None)

Source from the content-addressed store, hash-verified

765 format = 'admin'
766
767 def render(self, data, accepted_media_type=None, renderer_context=None):
768 self.accepted_media_type = accepted_media_type or ''
769 self.renderer_context = renderer_context or {}
770
771 response = renderer_context['response']
772 request = renderer_context['request']
773 view = self.renderer_context['view']
774
775 if response.status_code == status.HTTP_400_BAD_REQUEST:
776 # Errors still need to display the list or detail information.
777 # The only way we can get at that is to simulate a GET request.
778 self.error_form = self.get_rendered_html_form(data, view, request.method, request)
779 self.error_title = {'POST': 'Create', 'PUT': 'Edit'}.get(request.method, 'Errors')
780
781 with override_method(view, request, 'GET') as request:
782 response = view.get(request, *view.args, **view.kwargs)
783 data = response.data
784
785 template = loader.get_template(self.template)
786 context = self.get_context(data, accepted_media_type, renderer_context)
787 ret = template.render(context, request=renderer_context['request'])
788
789 # Creation and deletion should use redirects in the admin style.
790 if response.status_code == status.HTTP_201_CREATED and 'Location' in response:
791 response.status_code = status.HTTP_303_SEE_OTHER
792 response['Location'] = request.build_absolute_uri()
793 ret = ''
794
795 if response.status_code == status.HTTP_204_NO_CONTENT:
796 response.status_code = status.HTTP_303_SEE_OTHER
797 try:
798 # Attempt to get the parent breadcrumb URL.
799 response['Location'] = self.get_breadcrumbs(request)[-2][1]
800 except KeyError:
801 # Otherwise reload current URL to get a 'Not Found' page.
802 response['Location'] = request.full_path
803 ret = ''
804
805 return ret
806
807 def get_context(self, data, accepted_media_type, renderer_context):
808 """

Callers

nothing calls this directly

Calls 8

get_contextMethod · 0.95
override_methodClass · 0.90
build_absolute_uriMethod · 0.80
get_breadcrumbsMethod · 0.80
getMethod · 0.45
get_templateMethod · 0.45
renderMethod · 0.45

Tested by

no test coverage detected