diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index 14a371852..ca4844321 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -612,6 +612,11 @@ class BrowsableAPIRenderer(BaseRenderer): def get_breadcrumbs(self, request): return get_breadcrumbs(request.path, request) + def get_extra_actions(self, view): + if hasattr(view, 'get_extra_action_url_map'): + return view.get_extra_action_url_map() + return None + def get_filter_form(self, data, view, request): if not hasattr(view, 'get_queryset') or not hasattr(view, 'filter_backends'): return @@ -698,6 +703,8 @@ class BrowsableAPIRenderer(BaseRenderer): 'delete_form': self.get_rendered_html_form(data, view, 'DELETE', request), 'options_form': self.get_rendered_html_form(data, view, 'OPTIONS', request), + 'extra_actions': self.get_extra_actions(view), + 'filter_form': self.get_filter_form(data, view, request), 'raw_data_put_form': raw_data_put_form, diff --git a/rest_framework/templates/rest_framework/admin.html b/rest_framework/templates/rest_framework/admin.html index 4fb6480c5..faa37a586 100644 --- a/rest_framework/templates/rest_framework/admin.html +++ b/rest_framework/templates/rest_framework/admin.html @@ -110,6 +110,20 @@ {% endif %} + {% if extra_actions %} + + {% endif %} + {% if filter_form %} + + + {% endif %} + {% if filter_form %}