所以这是我第一次使用djangorestframework-bulk
来实现批量请求。如果我理解正确,您应该可以通过让*ViewSet
类继承来自应用程序的mixins(例如BulkUpdateModelMixin
)或viewsets(例如{{BulkUpdateAPIView
来启用此功能。 1}}。
大多数API网址都有两个针对每种资源的网址级别:
url(r'foo/', ...) url(r'foo/(?P<pk>\d+)/', ...)
然而,第二个网址不适用于批量操作,因为 url直接映射到单个资源。因此所有批量通用 视图仅适用于第一个网址。
但是,当我尝试向我的应用中的端点执行PUT
或PATCH
批量请求(未尝试DELETE
)时,例如:
http://localhost:8000/api/users/
我收到以下错误:
PUT http://localhost:8080/api/users/ 405 (METHOD NOT ALLOWED)
我是否需要执行任何其他配置才能使此网址允许PUT和PATCH请求并让我的视图集update()
和partial_update()
处理此类请求?
谢谢!
答案 0 :(得分:0)
您的问题是,您已通过bulk
实施了BulkUpdateModelMixin
方法,但您没有为ViewSet
设置正确的路由器。例如,您现在需要put
转到bulk_update
而不只是update
。
查看here以获取如何设置自己的路由器以允许DRF ViewSets
的批量更新功能的示例。基本上,映射动词以调用正确的方法。