Django url 碰撞
Django url collisions
使用Django==2.2.11,djangorestframework==3.8.1
感谢阅读!
我用的url有冲突:
urlpatterns = [
. . .
url(
r'^some-path$',
views.MyViewSet.as_view({'get': 'list'})
),
url(
r'^some-path$',
views.MyViewSet.as_view({'post': 'create'}),
),
...
]
我正在使用 postman 测试每条路径,这两个 url 之间似乎存在冲突。
将此 url 与 GET 一起使用,将有效:
http://my_domain.com:8000/some-path
但是 POST 具有相同的 url(并且具有有效的负载)会抛出错误:
WARNING 2020-03-28 19:13:57,288 "POST /some-path HTTP/1.1" 405 41
并回复:
{"detail": "Method \"POST\" not allowed."}
我 url 按顺序交换,然后 POST 会起作用,而 GET 会抛出类似的错误。
我看了这个post:
405 POST method not allowed
我很乐意添加视图代码 - 但我很确定问题出在 urls 上,因为它们在交换顺序时都能正常工作。
将根据要求添加。
谢谢!
编辑:我混淆了 urls- 添加了 retrieve
而不是 list
抱歉!
如果您指向相同的终点,即 /some-path
,您应该将额外的操作添加为,
urlpatterns = [
url(r'^some-path$', MusicianViewset.as_view(<b>{'post': 'create', 'get': 'list'}</b>)),
]
使用Django==2.2.11,djangorestframework==3.8.1
感谢阅读!
我用的url有冲突:
urlpatterns = [
. . .
url(
r'^some-path$',
views.MyViewSet.as_view({'get': 'list'})
),
url(
r'^some-path$',
views.MyViewSet.as_view({'post': 'create'}),
),
...
]
我正在使用 postman 测试每条路径,这两个 url 之间似乎存在冲突。
将此 url 与 GET 一起使用,将有效:
http://my_domain.com:8000/some-path
但是 POST 具有相同的 url(并且具有有效的负载)会抛出错误:
WARNING 2020-03-28 19:13:57,288 "POST /some-path HTTP/1.1" 405 41
并回复:
{"detail": "Method \"POST\" not allowed."}
我 url 按顺序交换,然后 POST 会起作用,而 GET 会抛出类似的错误。
我看了这个post: 405 POST method not allowed
我很乐意添加视图代码 - 但我很确定问题出在 urls 上,因为它们在交换顺序时都能正常工作。 将根据要求添加。
谢谢!
编辑:我混淆了 urls- 添加了 retrieve
而不是 list
抱歉!
如果您指向相同的终点,即 /some-path
,您应该将额外的操作添加为,
urlpatterns = [
url(r'^some-path$', MusicianViewset.as_view(<b>{'post': 'create', 'get': 'list'}</b>)),
]