(self, data, accepted_media_type=None, renderer_context=None)
| 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 | """ |
nothing calls this directly
no test coverage detected