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 %}