Как отправить массив объектов модели django в post api?

class Product(models.Model):
    name = models.CharField(max_length=255)

class Image(models.Model):
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    image = models.ImageField(upload_to="images")

class ProductViewSet(ModelViewSet):
    queryset = Product.objects.all()
    serializer_class = ProductSerializer

Как я могу сделать свой сериализатор и представления?

Полезная нагрузка моего post api запроса будет такой:

[{"name":"Laptop", "images":[array of image files]}, {"name":"Shoes", "images":[array of images]}]

Предполагая, что ProfileSerializer не доступен только для чтения, и вы правильно направили конечную точку на представление, тогда вы можете просто переопределить метод, который отвечает за POST запросы (например, create), передавая many=True сериализатору:

class ProductViewSet(ModelViewSet):
    queryset = Product.objects.all()
    serializer_class = ProductSerializer

    def create(self, request, *args, **kwargs):
        # Pass many=True argument, so that serializer knows it's dealing with an array of data
        serializer = self.get_serializer(data=request.data, many=True)
        serializer.is_valid(raise_exception=True)
        self.perform_create(serializer)
        return Response(serializer.data, status=201)
Вернуться на верх