7.ModelViewSet自定义方法实现批量删除

11 篇文章 ¥99.90 ¥299.90
本文介绍了如何在Django的ModelViewSet中创建一个自定义的批量删除方法。通过定义一个action并使用@action装饰器,设置detail、methods等参数,实现通过DELETE请求删除多个对象。接着,通过视图和路由配置,使这个自定义功能可用。最后,给出了触发此批量删除功能的URL格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,我们需要在modelViewset中定义一个自定义的action,用于批量删除对象。例如:

from rest_framework.decorators import action
from rest_framework.response import Response

class MyModelViewset(viewsets.ModelViewSet):
    queryset = MyModel.objects.all()
    serializer_class = MyModelSerializer

    @action(detail=False, methods=['delete'])
    def batch_delete(self, request):
        ids = request.query_params.get('ids', '').split(',')
        self.queryset.filter(id__in=ids).delete()
        return Response({'message': 'success.'})

在上面的代码中,我们使用了装饰器@action来定义一个名为batch_delete的自定义方法。我们使用了DELETE方法来触发该action。

action装饰器提供了以下参数:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Automatic_tester

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值