diff --git a/rest_framework/templates/rest_framework/docs/_recursive_document.html b/rest_framework/templates/rest_framework/docs/_recursive_document.html index 141db6c63..d1596b454 100644 --- a/rest_framework/templates/rest_framework/docs/_recursive_document.html +++ b/rest_framework/templates/rest_framework/docs/_recursive_document.html @@ -1,6 +1,7 @@ +{% load rest_framework %} {% for section_key, section in items %} {% if section_key %} - {{ section_key }} + {{ section_key }} {% endif %} @@ -8,8 +9,7 @@ {% for link_key, link in section.links|items %} {% include "rest_framework/docs/link.html" with prefix=prefix level=level|add:1%} {% endfor %} - {% else %} - {% include 'rest_framework/docs/_recursive_document.html' with items=section|items prefix=prefix|add:section_key|add:'/' level=level|add:1 %} {% endif %} + {% include 'rest_framework/docs/_recursive_document.html' with items=section.data|items prefix=prefix|add:section_key|add:'/' level=level|add:1 %} {% endfor %} diff --git a/rest_framework/templates/rest_framework/docs/_recursive_menu.html b/rest_framework/templates/rest_framework/docs/_recursive_menu.html index 4a0bbb05d..82775dd02 100644 --- a/rest_framework/templates/rest_framework/docs/_recursive_menu.html +++ b/rest_framework/templates/rest_framework/docs/_recursive_menu.html @@ -1,3 +1,5 @@ +{% load rest_framework %} +{% if items %} + {% endif %} + {% if prefix %} + {% include 'rest_framework/docs/_recursive_menu.html' with items=section.data|items prefix=prefix|add:'/'|add:section_key %} {% else %} - {% if prefix %} - {% include 'rest_framework/docs/_recursive_menu.html' with items=section|items prefix=prefix|add:'/'|add:section_key %} - {% else %} - {% include 'rest_framework/docs/_recursive_menu.html' with items=section|items prefix=section_key %} - {% endif %} + {% include 'rest_framework/docs/_recursive_menu.html' with items=section.data|items prefix=section_key %} {% endif %} {% endfor %} - +{% endif %} diff --git a/tests/interactive_doc/data.py b/tests/interactive_doc/data.py index e8b26a672..26eaa9558 100644 --- a/tests/interactive_doc/data.py +++ b/tests/interactive_doc/data.py @@ -1,5 +1,6 @@ from django.db import models from rest_framework import serializers, viewsets +from rest_framework.decorators import detail_route class DummyModel(models.Model): @@ -16,3 +17,7 @@ class DummySerializer(serializers.ModelSerializer): class DummyViewSet(viewsets.ModelViewSet): serializer_class = DummySerializer queryset = DummyModel.objects.all() + + @detail_route(methods=['get', 'post']) + def retrieve_alt(self, request, *args, **kwargs): + return self.retrieve(request, *args, **kwargs) diff --git a/tests/interactive_doc/test_recursive_url.py b/tests/interactive_doc/test_recursive_url.py index 67055c78a..64b313052 100644 --- a/tests/interactive_doc/test_recursive_url.py +++ b/tests/interactive_doc/test_recursive_url.py @@ -27,12 +27,17 @@ class TestRecursiveUrlViewSets(TestCase): ) def test_documentation(self): - self.assertTrue( - re.search('h2.*>not_dummies {}s