gpt4 book ai didi

Django 休息框架 : NoReverseMatch error even when pattern name has been defined

转载 作者:行者123 更新时间:2023-12-04 10:22:11 24 4
gpt4 key购买 nike

我在我的 views.py 中创建了一个 api_root

@api_view(['GET'])
def api_root(request, format=None):
return Response({
'books': reverse('api_book_list'),
'users': reverse('api_user_list')
})

这是由我的 rest_api.urls.py 引用的
urlpatterns = [
url(r'', api_root),
url(r'^books/$', BookList.as_view(), name='api_book_list'),
url(r'^books/(?P<pk>[0-9]+)/$', BookDetail.as_view(), name='book-detail'),


url(r'^users/$', UserList.as_view(), name='api_user_list'),
url(r'^users/(?P<pk>[0-9]+)/$', UserDetail.as_view(), name='user-detail'),
]

我的项目根 urls.py 使用以下 url-config 链接到 rest_api.urls.py:
url(r'^api/v1/', include('rest_api.urls', namespace='api')),

然而,当我访问/api/v1/页面时,我收到以下错误:
NoReverseMatch at /api/v1/
Reverse for 'api_book_list' not found. 'api_book_list' is not a valid view
function or pattern name.

但是我已经在我的 urls.py 中定义了模式名称,有没有人知道为什么 Django 仍然无法识别它?

最佳答案

您已定义 namespace='api' 到 root url 所以你需要追加 api反向时在 url 名称之前

reverse('api:api_book_list')
reverse('api:api_user_list')

Read official docs: Reversing namespace urls

关于Django 休息框架 : NoReverseMatch error even when pattern name has been defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47378019/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com