How to override create action of django rest framework ModelViewSet to create bulk records?

Viewed 26

Demo model

class Item(models.Model):
    name = models.CharField(max_length=20)

Demo view

class ItemViewSet(viewset.ModelViewSet):
    queryset = Item.objects.all()
    serializer_class = ItemSerializer

Demo input passing using API post request

[ {name: 'Book'}, {name: 'PC'}, {name: 'Phone'} ]

How to create multiple table records with single post request?

1 Answers

This is how I used to do with Flask, I went through Django documentation and tried to override the create method.

class ItemViewSet(viewset.ModelViewSet):
    queryset = Item.objects.all()
    serializer_class = ItemSerializer
    
    def create(self, request, *args, **kwargs):
        data = request.data
        for item in data:
           record = Item(name=item.name)
           record.save()
        return Response(status=200)
Related