Как загрузить несколько изображений в 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.