Merge pull request #1969 from erikcw/ordered

Maintain order of views on router for api root view.
This commit is contained in:
Tom Christie 2014-10-22 14:57:48 +01:00
commit 4ad4fca6ce

View File

@ -20,6 +20,7 @@ from collections import namedtuple
from django.conf.urls import patterns, url
from django.core.exceptions import ImproperlyConfigured
from django.core.urlresolvers import NoReverseMatch
from django.utils.datastructures import SortedDict
from rest_framework import views
from rest_framework.response import Response
from rest_framework.reverse import reverse
@ -277,7 +278,7 @@ class DefaultRouter(SimpleRouter):
"""
Return a view to use as the API root.
"""
api_root_dict = {}
api_root_dict = SortedDict()
list_name = self.routes[0].name
for prefix, viewset, basename in self.registry:
api_root_dict[prefix] = list_name.format(basename=basename)
@ -286,7 +287,7 @@ class DefaultRouter(SimpleRouter):
_ignore_model_permissions = True
def get(self, request, *args, **kwargs):
ret = {}
ret = SortedDict()
for key, url_name in api_root_dict.items():
try:
ret[key] = reverse(