diff --git a/rest_framework/viewsets.py b/rest_framework/viewsets.py index f7560067e..1c56f61e8 100644 --- a/rest_framework/viewsets.py +++ b/rest_framework/viewsets.py @@ -16,8 +16,6 @@ automatically. router.register(r'users', UserViewSet, 'user') urlpatterns = router.urls """ - -import contextlib from collections import OrderedDict from functools import update_wrapper from inspect import getmembers @@ -198,7 +196,7 @@ class ViewSetMixin: ] for action in actions: - with contextlib.suppress(NoReverseMatch): + try: url_name = '%s-%s' % (self.basename, action.url_name) namespace = self.request.resolver_match.namespace if namespace: @@ -207,6 +205,9 @@ class ViewSetMixin: url = reverse(url_name, self.args, self.kwargs, request=self.request) view = self.__class__(**action.kwargs) action_urls[view.get_view_name()] = url + except NoReverseMatch: + pass # URL requires additional arguments, ignore + return action_urls