aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework
diff options
context:
space:
mode:
authorMarek Skrajnowski2014-09-11 12:42:36 +0200
committerMarek Skrajnowski2014-09-11 12:42:36 +0200
commitae8443853054635326598f6b06fb49429884d558 (patch)
treea533cbaf9c1c1ef9e7bafd8b591f6802d69bf553 /rest_framework
parent293728579070d802342bd92fa164e8dc0f0a7990 (diff)
downloaddjango-rest-framework-ae8443853054635326598f6b06fb49429884d558.tar.bz2
Added DefaultRouter support (and test) for viewsets without the default action implemented, which is usually the list action.
Diffstat (limited to 'rest_framework')
-rw-r--r--rest_framework/routers.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/rest_framework/routers.py b/rest_framework/routers.py
index 8f1ab6fa..01fd4b91 100644
--- a/rest_framework/routers.py
+++ b/rest_framework/routers.py
@@ -19,6 +19,7 @@ import itertools
from collections import namedtuple
from django.conf.urls import patterns, url
from django.core.exceptions import ImproperlyConfigured
+from django.core.urlresolvers import NoReverseMatch
from rest_framework import views
from rest_framework.response import Response
from rest_framework.reverse import reverse
@@ -287,7 +288,15 @@ class DefaultRouter(SimpleRouter):
def get(self, request, *args, **kwargs):
ret = {}
for key, url_name in api_root_dict.items():
- ret[key] = reverse(url_name, request=request, format=kwargs.get('format', None))
+ try:
+ ret[key] = reverse(
+ url_name,
+ request=request,
+ format=kwargs.get('format', None)
+ )
+ except NoReverseMatch:
+ continue
+
return Response(ret)
return APIRoot.as_view()