将允许的方法添加到rest_framework_bulk的URL

时间:2014-07-02 21:09:46

标签: python django rest django-rest-framework

所以这是我第一次使用djangorestframework-bulk来实现批量请求。如果我理解正确,您应该可以通过让*ViewSet类继承来自应用程序的mixins(例如BulkUpdateModelMixin)或viewsets(例如{{BulkUpdateAPIView来启用此功能。 1}}。

正如the notes in the repo所述:

  

大多数API网址都有两个针对每种资源的网址级别:

url(r'foo/', ...)
url(r'foo/(?P<pk>\d+)/', ...)
     

然而,第二个网址不适用于批量操作,因为   url直接映射到单个资源。因此所有批量通用   视图仅适用于第一个网址。

但是,当我尝试向我的应用中的端点执行PUTPATCH批量请求(未尝试DELETE)时,例如:

http://localhost:8000/api/users/

我收到以下错误:

PUT http://localhost:8080/api/users/ 405 (METHOD NOT ALLOWED)

我是否需要执行任何其他配置才能使此网址允许PUT和PATCH请求并让我的视图集update()partial_update()处理此类请求?

谢谢!

1 个答案:

答案 0 :(得分:0)

您的问题是,您已通过bulk实施了BulkUpdateModelMixin方法,但您没有为ViewSet设置正确的路由器。例如,您现在需要put转到bulk_update而不只是update

查看here以获取如何设置自己的路由器以允许DRF ViewSets的批量更新功能的示例。基本上,映射动词以调用正确的方法。