Python Django REST框架-使用reverse()时的NoReverseMatch
我一直在尝试使用reverse()函数返回一些URL,但不管怎样,我得到一个NoReverseMatch异常:Python Django REST框架-使用reverse()时的NoReverseMatch,python,django,django-rest-framework,Python,Django,Django Rest Framework,我一直在尝试使用reverse()函数返回一些URL,但不管怎样,我得到一个NoReverseMatch异常: Reverse for 'folder' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: [] 为了排除故障,我创建了一些简化的代码,但仍然无法工作。以下是我的看法: from rest_framework.response import Response from rest_
Reverse for 'folder' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
为了排除故障,我创建了一些简化的代码,但仍然无法工作。以下是我的看法:
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)})
以下是我的URL模式:
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')])
您不应通过以下请求:
{'url': reverse('folder')}
或
如果您使用的是,那么在尝试在serializers.py中为模型获取reverse时,我在处理reverse()Django Rest框架时遇到了相同的问题
....
def get_links(self, obj):
request = self.context['request']
return {
'self': reverse('sprint-detail',
kwargs={'pk': obj.pk}, request=request),
}
将应用程序添加到反向解决了它我的应用程序
....
def get_links(self, obj):
request = self.context['request']
return {
'self': reverse('my_app:sprint-detail',
kwargs={'pk': obj.pk}, request=request),
}
您是否尝试过使用django.core.urlresolvers.reverse
?@Gocht是的,但它会产生完全相同的错误。我也尝试了reverse_lazy(),但也没有成功。只是想检查一下,url模式是否在音乐模块中?如果是,音乐模块的URL是否已包含在项目主urls.py
中?我在过去被咬过几次…谢谢!添加名称空间有效。我仍然必须通过请求才能获得完全限定的URL,但我认为这是REST框架特有的。
....
def get_links(self, obj):
request = self.context['request']
return {
'self': reverse('my_app:sprint-detail',
kwargs={'pk': obj.pk}, request=request),
}