【发布时间】:2020-03-11 19:05:22
【问题描述】:
我正在开发一个房地产应用程序,并希望列表仅显示列表的第一张图片。目前它正在显示所有图像。
class Image(models.Model):
photo = models.ImageField(blank=True, upload_to=get_image_filename)
listing = models.ForeignKey(Listing, on_delete=models.CASCADE)
class ImageSerializerForListingList(serializers.ModelSerializer):
photo = serializers.ImageField()
class Meta:
model = Image
fields = ('photo', )
class ListingListSerializer(serializers.HyperlinkedModelSerializer):
image = ImageSerializerForListingList(many=True, required=False, source='image_set')
class Meta:
model = Listing
fields = ('url', 'address', 'image', )
def get_first_image(self, obj):
image = obj.image_set.all().first()
return ImageSerializerForListingList(image, many=True).data
这仍然显示所有图像,
对此有何建议?
【问题讨论】:
-
只需在视图中使用过滤器并仅序列化一个对象。给我看你的模型和视图,我会试着写解决方案。
标签: django django-rest-framework django-rest-viewsets