在 Django 中我有一个基于类的 View :
class ApiRoot(APIView):
def get(request, format=None):
return Response({
'users': reverse('user-list', request=request, format=format),
#'snippets': reverse('snippet-list', request=request, format=format)
})
以及 urls.py 中的以下 url 模式
urlpatterns = format_suffix_patterns([
url(r'^$', views.ApiRoot.as_view(), name='api-root'),
url(r'^snippets/$', views.SnippetList.as_view(), name='snippet-list'),
url(r'^snippets/(?P<pk>[0-9]+)/$', views.SnippetDetail.as_view(), name='snippet-detail'),
url(r'^users/$', views.UserList.as_view(), name='user-list'),
url(r'^users/(?P<pk>[0-9]+)/$', views.UserDetail.as_view(), name='user-detail'),
])
urlpatterns += [
url(r'^api-auth/', include('rest_framework.urls',
namespace='rest_framework')),
我认为我已正确连接,但出现以下错误:
NoReverseMatch at /
Reverse for 'user-list' with arguments '()' and keyword arguments '{u'format': <rest_framework.request.Request object at 0x7f99998c4c50>}' not found. 2 pattern(s) tried: [u'users\\.(?P<format>[a-z0-9]+)/?$', 'users/$']
知道为什么吗?
谢谢
请您参考如下方法:
您应该将 url 反转为 reverse('user-list')。那应该可以解决您的问题。
