如何实现批量删除?

时间:2014-05-07 15:56:01

标签: django rest django-rest-framework

目前,我获得了包含url api / item的商品列表,我只能通过向每个商品发送删除请求来删除商品。网址如:api/item/52api/item/53

显然,发送50个删除50个项目的请求是不明智的,所以我想知道如何使用django rest框架实现批量删除。

2 个答案:

答案 0 :(得分:1)

你最可靠的是

DELETE /api/item?id=52,53

您可以尝试将消息正文放入DELETE请求中,但是如果您这样做,许多框架和容器都会出错。这是因为spec不清楚DELETE请求是否支持邮件正文。

答案 1 :(得分:1)

首先创建一个临时的“待删除”项目集合资源:

POST /api/collections/items

传入这样的有效载荷(假设是JSON):

{
   "items" : ["/api/item/52", "/api/item/53"]
}

哪个会在Location响应标头中返回这样的URI,表示新集合引用的项集:

/api/collections/items/7266447

然后,您可以在集合URI上发出一个DELETE,它将核对所有引用的元素:

DELETE /api/collections/items/7266447