所以我试图在DRF中发送DELETE请求正文。我知道默认情况下,DRF不支持批量操作,所以我使用的是django-rest-framework-bulk。
现在按照tutorial,我确保只有在过滤查询时才允许批量删除。我正在使用BulkModelViewset。
考虑这个json数组:
[{
"id": "1",
"first_name": "bruce",
"second_name": "banner",
"team": "avengers"
},
{
"id": "2",
"first_name": "clark",
"second_name": "kent",
"team": "Justice League"
}
{
"id": "3",
"first_name": "dead",
"second_name": "pool",
"team": "x force"
}]
现在我可以通过传递过滤器来批量删除:
DELETE /api_name/?first_name=bruce,clark
但我的前端人员想要发送一个请求正文,因为如果有100个对象需要删除,那么它们不会在查询参数中以逗号分隔的字符串发送100个ID。
有没有办法可以发送请求正文,就像我在POST,PUT等中一样。像,
[{
"id": "1",
"first_name": "bruce",
"second_name": "banner",
"team": "avengers"
},
{
"id": "2",
"first_name": "clark",
"second_name": "kent",
"team": "Justice League"
}]
将删除传递的对象。
我是REST原则的新手,因此我的整个逻辑可能存在错误。我试图在网上找到答案,但找不到具体的东西。谢谢
示例视图集:
class TeamViewSet(BulkModelViewSet):
serializer_class = TeamViewSerializer
queryset = TeamView.objects.all()
filter_backends = (DjangoFilterBackend,filters.OrderingFilter,)
filter_class =TeamViewFilter
ordering = ('id','second_name','first_name','team')
def allow_bulk_destroy(self, qs, filtered):
return filtered