Django REST Framework-使用reverse()时使用NoReverseMatch

Ste*_*awk 4 python django django-rest-framework

我一直在尝试使用reverse()函数返回一些URL,但是无论如何,我都会收到一个NoReverseMatch异常:

Reverse for 'folder' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
Run Code Online (Sandbox Code Playgroud)

为了进行故障排除,我创建了一些简单的代码,但仍然无法正常工作。这是我的看法:

from rest_framework.response import Response
from rest_framework.reverse import reverse
from rest_framework.views import APIView

class Folder(APIView):
    def get(self, request, format=None):
        return Response({'url': reverse('folder', request=request)})
Run Code Online (Sandbox Code Playgroud)

这是我的网址格式:

from django.conf.urls import url
from rest_framework.urlpatterns import format_suffix_patterns
from music import views

urlpatterns = format_suffix_patterns([
    url(r'^folder/$', views.Folder.as_view(), name='folder')])
Run Code Online (Sandbox Code Playgroud)

tri*_*het 5

您不应该通过请求:

{'url': reverse('folder')}
Run Code Online (Sandbox Code Playgroud)

要么

{'url': reverse('appname:folder')}
Run Code Online (Sandbox Code Playgroud)

如果您使用命名空间的URL