From ae8443853054635326598f6b06fb49429884d558 Mon Sep 17 00:00:00 2001 From: Marek Skrajnowski Date: Thu, 11 Sep 2014 12:42:36 +0200 Subject: Added DefaultRouter support (and test) for viewsets without the default action implemented, which is usually the list action. --- rest_framework/routers.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'rest_framework/routers.py') 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() -- cgit v1.2.3