Загрузка изображений внутри вложенных сериализаторов в django rest framework
Как я могу загрузить изображения, когда пользователь пытается создать объявление. Мне нужно загрузить изображения на мой компьютер и присвоить их объявлению, которое пользователь пытается создать.
Models.py
class Announcement(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(max_length=100)
address = models.CharField(max_length=100)
photo = models.ManyToManyField(Photo, blank=True)
def nameFile(instance, filename):
return '/'.join(['images', str(instance.name), filename])
class Photo(models.Model):
name = models.CharField(max_length=100)
image = models.ImageField(upload_to=nameFile, blank=True, null=True)
Views.py
class AnnouncementCreate(CreateAPIView):
permission_classes = [IsAuthenticated]
queryset = models.Announcement.objects.all()
serializer_class = AnnouncementSerializer
def perform_create(self, serializer):
serializer.save(author=self.request.user)
class PhotoViewSet(ListAPIView):
queryset = models.Photo.objects.all()
serializer_class = PhotoSerializer
def post(self, request, *args, **kwargs):
file = request.data.get('image')
image = models.Photo.objects.create(image=file)
return HttpResponse(json.dumps({'message': "Uploaded"}), status=200)
Serializers.py
class AnnouncementSerializer(serializers.ModelSerializer):
parameters = ParameterSerializer(many=True, required=False)
photo = PhotoSerializer(many=True, required=False)
class Meta:
model = Announcement
fields = ['id', 'name', 'address', 'date',
'price', 'description', 'author', 'parameters', 'photo']
class PhotoSerializer(serializers.ModelSerializer):
class Meta:
model = Photo
fields = ('name', 'image')