From 497ebcd6c0c65fb79464dbd2bd6fe7081ae2bc4f Mon Sep 17 00:00:00 2001 From: Sumanth Ratna Date: Wed, 30 Dec 2020 17:34:40 -0500 Subject: [PATCH] Update SimpleRouter --- rest_framework/routers.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/rest_framework/routers.py b/rest_framework/routers.py index e2afa573f..9ddc49c4f 100644 --- a/rest_framework/routers.py +++ b/rest_framework/routers.py @@ -18,6 +18,7 @@ from collections import OrderedDict, namedtuple from django.core.exceptions import ImproperlyConfigured from django.urls import NoReverseMatch, re_path +from django.views.generic.base import View from rest_framework import views from rest_framework.response import Response @@ -262,7 +263,13 @@ class SimpleRouter(BaseRouter): 'detail': route.detail, }) - view = viewset.as_view(mapping, **initkwargs) + if isinstance(viewset, ViewSet) or isinstance(viewset, View): + # `viewset` is either a REST Framework `ViewSet` + # or a Django class-based view. + view = viewset.as_view(mapping, **initkwargs) + else: + # assume that `viewset` is a Django view function + view = viewset name = route.name.format(basename=basename) ret.append(re_path(regex, view, name=name))