A.J*_*.J. 12 api django rest json django-rest-framework
我开始使用Django Rest Framework,它的表现非常好.我得到了所有的东西,因为我想要它.我遇到了一个我无法回答的问题.
我正在使用反向关系.
class Province(models.Model):
name = models.CharField(max_length=50)
intro = models.CharField(max_length=1000, null=True, blank=True)
description = models.TextField(max_length=10000, null=True, blank=True)
class Picture(models.Model):
name = models.TextField("Title", max_length=10000, null=True, blank=True)
pro = models.ForeignKey(Province, verbose_name="Province")
Run Code Online (Sandbox Code Playgroud)
当我编写省的反向关系序列化器时,例如单个省.
ProToPicturesSerial(node, many=False).data
Run Code Online (Sandbox Code Playgroud)
我得到了pictures
这个省的所有人.我想获得一些图片,可能是最后3张,或者最近添加的5张图片.
如何限制图片实例的数量?因为随着图片记录中的数字增长,应用程序将变得更慢.
class ProToPicturesSerial(serializers.ModelSerializer):
pro_pictures = PictureSerializer(many=True)
class Meta:
model = Province
fields = ('id', 'name', 'intro', 'description', 'pro_pictures')
Run Code Online (Sandbox Code Playgroud)
如果我错过了一些明显的东西,请告诉我.
alm*_*lki 11
您可以将source
属性指向PictureSerializer
省上仅返回3个相关图片的方法:
class ProToPicturesSerial(serializers.ModelSerializer):
pro_pictures = PictureSerializer(many=True, source='first_three_pics')
class Meta:
model = Province
fields = ('id', 'name', 'intro', 'description', 'pro_pictures')
Run Code Online (Sandbox Code Playgroud)
和
class Province(models.Model):
name = models.CharField(max_length=50)
intro = models.CharField(max_length=1000, null=True, blank=True)
description = models.TextField(max_length=10000, null=True, blank=True)
def first_three_pics(self):
return self.picture_set.all()[:3]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1721 次 |
最近记录: |