我有一个模型,其中有2个表。一个是包含租赁信息的租赁,另一个是与租赁表相关联的Gallery表,每个租金可以有多个图像。我使用Django Rest Framework设计了一个API。我的API会显示租借信息以及图片,但只显示一张图片,而不是与租金相关的所有图片。
my models.py
class Rental(models.Model):
listingName = models.CharField(_("Lisitng Name"), max_length=255, blank=False,null=True,
help_text=_("Title of the rental space"))
slug = models.SlugField(unique=True,blank=True,null=True)
summary = models.TextField(max_length=500, blank=True,null=True,help_text=_("Description of the rental space"))
class Gallery(models.Model):
rental = models.ForeignKey('Rental', null=True, on_delete=models.CASCADE,verbose_name=_('Rental'), related_name="gallery")
image = models.ImageField(blank=True,upload_to='upload/',null=True)
views.py
class RentalSerializer(serializers.ModelSerializer):
class Meta:
model = Rental
field = ('id','ownerName','listingName')
class GallerySerializer(serializers.ModelSerializer):
rental = RentalSerializer()
class Meta:
model = Gallery
field = ('id','image','rental')
class GalleryListAPIView(ListCreateAPIView):
queryset = Gallery.objects.all()
serializer_class = GallerySerializer
# filter_fields = ('listingName')
我想显示所有租借信息及其图像(如果多个图像显示所有图像)。我得到的是如果我租用5张图像,那么5次出租信息显示5个不同的图像。
在设计API方面我做错了什么?
答案 0 :(得分:2)
edit :
class RentalSerializer(serializers.ModelSerializer):
rental = serializers.RelatedField(source='Rental' , read_only=True , many=True)
class Meta:
model = Rental
field = ('id','ownerName','listingName','rental')
我没有测试过这个。