From e7d0bb8156dddd08dabe2a3fd6fb07d489b04190 Mon Sep 17 00:00:00 2001 From: Sumanth Ratna Date: Thu, 31 Dec 2020 15:19:24 -0500 Subject: [PATCH] Fix root view --- rest_framework/routers.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/rest_framework/routers.py b/rest_framework/routers.py index 94b68b1c4..5b1e248e5 100644 --- a/rest_framework/routers.py +++ b/rest_framework/routers.py @@ -20,6 +20,7 @@ from inspect import isclass from django.core.exceptions import ImproperlyConfigured from django.urls import NoReverseMatch, re_path, path from django.views.generic.base import View +from django.urls import get_resolver from rest_framework import views from rest_framework.response import Response @@ -312,8 +313,18 @@ class APIRootView(views.APIView): if namespace: url_name = namespace + ':' + url_name try: + reverse_dict = get_resolver().reverse_dict + if reverse_dict.get(url_name): + # REST Framework view + view_name = url_name + elif reverse_dict.get(key): + # Django view + view_name = key + else: + continue + ret[key] = reverse( - key, + view_name, args=args, kwargs=kwargs, request=request,