Я довольно застрял, работая с DRF впервые. Я хочу загрузить несколько изображений в один листинг недвижимости.
Моя модель изображения
class Image(models.Model):
photo = models.ImageField(blank=True, upload_to=get_image_filename)
listing = models.ForeignKey(Listing, on_delete=models.CASCADE)
my serial, Listing и Listing detail serializer
class ListingSerializer(serializers.HyperlinkedModelSerializer):
image_set = ImageSerializerForListingDetail(many=True, required=False)
class Meta:
model = Listing
fields = ['url', 'address', 'image_set', ]
class ListingDetailSerializer(serializers.HyperlinkedModelSerializer):
user = AccountSerializer(read_only=True)
image_set = ImageSerializerForListingDetail(many=True, required=False)
class Meta:
model = Listing
fields = '__all__'
depth = 1
class ImageSerializerForListingDetail(serializers.ModelSerializer):
image_url = serializers.SerializerMethodField()
class Meta:
model = Image
fields = ('image_url', )
def get_image_url(self, listing):
return listing.photo.url
Мой взгляд
class ListingViewSet(viewsets.ModelViewSet):
queryset = Listing.objects.all()
serializer_class = ListingSerializer
detail_serializer_class = ListingDetailSerializer
permission_classes = [IsOwnerOrReadOnly, ]
'''Show detailed Listing view'''
def get_serializer_class(self):
if self.action == 'retrieve':
if hasattr(self, 'detail_serializer_class'):
return self.detail_serializer_class
return super(ListingViewSet, self).get_serializer_class()
У меня проблемы с выяснением того, как загрузить / отредактировать несколько изображений в один листинг и где их переопределить. Я хотел бы, чтобы это было возможно при создании и редактировании списков. Любая помощь очень ценится. Спасибо!