Fix root view

This commit is contained in:
Sumanth Ratna 2020-12-31 15:19:24 -05:00 committed by GitHub
parent f87e442d7d
commit e7d0bb8156
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -20,6 +20,7 @@ from inspect import isclass
from django.core.exceptions import ImproperlyConfigured from django.core.exceptions import ImproperlyConfigured
from django.urls import NoReverseMatch, re_path, path from django.urls import NoReverseMatch, re_path, path
from django.views.generic.base import View from django.views.generic.base import View
from django.urls import get_resolver
from rest_framework import views from rest_framework import views
from rest_framework.response import Response from rest_framework.response import Response
@ -312,8 +313,18 @@ class APIRootView(views.APIView):
if namespace: if namespace:
url_name = namespace + ':' + url_name url_name = namespace + ':' + url_name
try: 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( ret[key] = reverse(
key, view_name,
args=args, args=args,
kwargs=kwargs, kwargs=kwargs,
request=request, request=request,