Загрузка изображения/изображений через конечную точку Django Rest Framework
Я пытаюсь загрузить изображения через конечную точку, например (localhost/posts/), для чего я просмотрел большинство предыдущих вопросов и ответов, но мне не удалось добиться успеха в этом. Помимо django rest framework я использую пакеты drf-flex-fields и versatileimagefield.
Когда изображение добавляется со стороны администратора, все работает хорошо, поэтому я подозреваю, что проблема кроется в моем методе создания сериализатора.
Ниже приведен мой код, который не работает через Postman:
#Модели
class Post(models.Model)
content = models.TextField()
image = models.ForeignKey(PostImage, related_name='posts_images')
updated = models.DateTimeField(auto_now=True)
created = models.DateTimeField(auto_now_add=True)
author = models.ForeignKey("profiles.Profile", on_delete=models.CASCADE, null=True, related_name='posts')
class PostImage(models.Model):
image = VersatileImageField('Image',upload_to='images/',ppoi_field='image_ppoi')
image_ppoi = PPOIField()
#Serializers
class PostImageSerializer(FlexFieldsModelSerializer):
image = VersatileImageFieldSerializer(
sizes=[
('full_size', 'url'),
('thumbnail', 'thumbnail__300x300'),
]
)
class Meta:
model = PostImage
fields = ('image',)
class PostSerializer(serializers.ModelSerializer):
image = PostImageSerializer(many=True, required=False)
class Meta:
read_only_fields = ('author', )
model = Post
fields = [
'id',
'content',
'author',
'created',
'image',
]
expandable_fields = {'image': ('posts.PostImageSerializer', {'many': True}),}
def create(self, validated_data):
request = self.context['request']
images = self.context['request'].FILES
post = Post.objects.create(author=request.user.profile, **validated_data)
for image in images:
PostImage.objects.create(**image)
return post
#Viewset
class PostViewSet(FlexFieldsModelViewSet):
serializer_class = PostSerializer
queryset = Post.objects.all()