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

Method get_context

rest_framework/renderers.py:807–849  ·  view source on GitHub ↗

Render the HTML for the browsable API representation.

(self, data, accepted_media_type, renderer_context)

Source from the content-addressed store, hash-verified

805 return ret
806
807 def get_context(self, data, accepted_media_type, renderer_context):
808 """
809 Render the HTML for the browsable API representation.
810 """
811 context = super().get_context(
812 data, accepted_media_type, renderer_context
813 )
814
815 paginator = getattr(context['view'], 'paginator', None)
816 if paginator is not None and data is not None:
817 try:
818 results = paginator.get_results(data)
819 except (TypeError, KeyError):
820 results = data
821 else:
822 results = data
823
824 if results is None:
825 header = {}
826 style = 'detail'
827 elif isinstance(results, list):
828 header = results[0] if results else {}
829 style = 'list'
830 else:
831 header = results
832 style = 'detail'
833
834 columns = [key for key in header if key != 'url']
835 details = [key for key in header if key != 'url']
836
837 if isinstance(results, list) and 'view' in renderer_context:
838 for result in results:
839 url = self.get_result_url(result, context['view'])
840 if url is not None:
841 result.setdefault('url', url)
842
843 context['style'] = style
844 context['columns'] = columns
845 context['details'] = details
846 context['results'] = results
847 context['error_form'] = getattr(self, 'error_form', None)
848 context['error_title'] = getattr(self, 'error_title', None)
849 return context
850
851 def get_result_url(self, result, view):
852 """

Callers 2

renderMethod · 0.95

Calls 2

get_result_urlMethod · 0.95
get_resultsMethod · 0.80

Tested by 1