> 文章列表 > 7.ModelViewSet自定义方法实现批量删除

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

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

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

from rest_framework.decorators import action
from rest_framework.response import Responseclass 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装饰器提供了以下参数:

  • detail:指定该action方法是否针对单个实例进行操作。默认为True,表示该方法需要一个实例作为参数。如