gpt4 book ai didi

django - 如何使用命名空间调用 Django Rest Framework URL?

转载 作者:行者123 更新时间:2023-12-03 23:23:06 25 4
gpt4 key购买 nike

我有一个 urls.py看起来像这样:

router = SimpleRouter()
router.register(r'meetings', MeetingViewSet, 'meetings-list')

urlpatterns = patterns('clubs.views',
url(r'^(?P<pk>\d+)/', include(router.urls)),
url(r'^amazon/$', AmazonView.as_view(), name="amazon"),)

我想引用 'meetings-list'网址使用 reverse ,如:
url = reverse('meetings-list')
但是当我尝试这个时,我得到 NoReverseMatch: Reverse for 'MeetingViewSet' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
有没有办法使用 Django Rest Framework 做到这一点?

最佳答案

向路由器注册 View 时,可以通过base_name作为第三个参数。此基本名称用于生成单独的 url 名称,生成为 [base_name]-list[base_name]-detail .

在您的情况下,您将 View 集注册为

router.register(r'meetings', MeetingViewSet, 'meetings-list')

所以 base_namemeetings-list , View 名称为 meetings-list-listmeetings-list-detail .听起来您正在寻找 meetings-listmeetings-detail ,这将需要一个 base_namemeetings .
router.register(r'meetings', MeetingViewSet, 'meetings')

您还在使用现已弃用的 patterns定义 url 的语法,但您实际上并没有使用正确的 url与它一起工作的调用。我建议只更换 patterns并使用标准 Python 列表/元组( []() )包装您的网址列表。

这应该可以解决您的问题,并调用 reverse应该为你解决。

关于django - 如何使用命名空间调用 Django Rest Framework URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27488226/

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