Django url冲突

问题描述 投票:-1回答:1

使用Django == 2.2.11,djangorestframework == 3.8.1

谢谢您的阅读!

我正在使用的网址发生冲突:

urlpatterns = [
    . . . 
    url(
        r'^some-path$',
        views.MyViewSet.as_view({'get': 'list'})
    ),
    url(
        r'^some-path$',
        views.MyViewSet.as_view({'post': 'create'}),
    ),
    ...
]

我正在使用邮递员来测试每个路径,这两个网址之间似乎有冲突。将此网址与GET一起使用将可以工作:

http://my_domain.com:8000/some-path

但是具有相同网址(以及有效载荷)的POST会引发错误:

WARNING 2020-03-28 19:13:57,288 "POST /some-path HTTP/1.1" 405 41

回应:

{"detail": "Method \"POST\" not allowed."}

我的网址按顺序交换,然后POST将起作用,而GET将引发类似错误。

我看了这篇文章:405 POST method not allowed

我很乐意添加视图代码-但我可以肯定问题出在URL上,因为它们在交换顺序时都可以工作。将根据要求添加。

谢谢!

编辑:我混淆了网址-添加retrieve而不是list对不起!

django url django-rest-framework django-views url-routing
1个回答
0
投票

如果您指向相同的端点,即/some-path,则应将其他操作添加为,

urlpatterns = [
    url(r'^some-path$', MusicianViewset.as_view({'post': 'create', 'get': 'list'})),
]
© www.soinside.com 2019 - 2024. All rights reserved.