Как загрузить несколько изображений в django rest framework

Я хочу загружать несколько изображений с помощью модели изображения, а не как вложенный сериализатор Вот мой сериализатор

class ProjectImageSerializer(ModelSerializer):
    class Meta:
        model = ProjectImage
        fields = (
            'id',
            'file',
            'project',
        )

Это модель

class ProjectImage(models.Model):
    file = models.ImageField(
        upload_to='apps/projects/ProjectImage/file/',
    )
    user = models.ForeignKey(
        'users.User',
        on_delete=models.CASCADE,
        related_name='project_image_set',
    )
    project = models.ForeignKey(
        'Project',
        on_delete=models.CASCADE,
        related_name='image_set',
    )
    created = CreatedField()
    last_modified = LastModifiedField()

    def __str__(self):
        return basename(self.file.name)

и вот Views.py

class ProjectImageViewSet(viewsets.ModelViewSet):
    parser_classes = [
        MultiPartParser,
    ]
    queryset = ProjectImage.objects.all()
    serializer_class = ProjectImageSerializer

может ли кто-нибудь помочь мне, когда я пытаюсь использовать postman, он выбирает несколько изображений, но публикует только одно

class ProjectImageSerializer(ModelSerializer):
    class Meta:
        model = ProjectImage
        fields = (
            'id',
            'file',
            'project',
        )
        read_only_fields = ['id']
        extra_kwargs = {'file': {'required': 'True'}}

Попробуйте приведенный выше код

Вы не можете использовать этот сериализатор для загрузки нескольких изображений. Вы должны определить другой сериализатор, который принимает список файлов в одном из полей. Что-то вроде этого:

def UploadSerializer(serializers.Serializer):
    images = serializers.ListField(child=serializers.ImageField())

А затем реализуйте свою логику создания ProjectImage экземпляров в методе create.

Вернуться на верх