【问题标题】:Add allowed methods to urls for rest_framework_bulk将允许的方法添加到 rest_framework_bulk 的 url
【发布时间】:2014-07-02 21:09:46
【问题描述】:

所以这是我第一次使用djangorestframework-bulk 来实现批处理请求。如果我理解正确,您应该能够通过让您的 *ViewSet 类也从应用程序的 mixin(如 BulkUpdateModelMixin)或视图集(如 BulkUpdateAPIView)继承来开箱即用地获得此功能。

the notes in the repo所述:

大多数 API url 对每个资源都有两个 URL 级别:

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

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

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

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

我收到以下错误:

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

为了让这个 url 允许 PUT 和 PATCH 请求并让我的视图集的 update()partial_update() 处理此类请求,我需要做任何其他配置吗?

谢谢!!

【问题讨论】:

    标签: python django rest django-rest-framework


    【解决方案1】:

    您的问题是您已经通过BulkUpdateModelMixin 实现了bulk 方法,但是您没有适合您的ViewSet 的路由器。例如,您现在需要 put 转至 bulk_update 而不仅仅是 update

    查看here 以获取有关如何设置您自己的路由器以允许使用 DRF ViewSets 进行批量更新功能的示例。基本上,列出动词来调用正确的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-12
      • 1970-01-01
      • 2023-03-25
      • 2017-01-10
      • 2014-01-08
      • 2020-07-30
      • 2023-03-11
      • 2021-08-16
      相关资源
      最近更新 更多