gpt4 book ai didi

json - 如何限制Django Rest Framework反向关系中的记录数

转载 作者:行者123 更新时间:2023-12-04 01:02:28 25 4
gpt4 key购买 nike

我正在开始使用 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")

当我编写省的反向关系序列化程序时,例如对于一个省。

观看次数
ProToPicturesSerial(node, many=False).data

我得到所有 pictures在这个省。我想获取一些图片,可能是最后 3 张,或者是最近添加的 5 张图片。

如何限制图片实例的数量?因为随着图片记录数量的增加,应用程序会趋于变慢。

序列化器
class ProToPicturesSerial(serializers.ModelSerializer):
pro_pictures = PictureSerializer(many=True)

class Meta:
model = Province
fields = ('id', 'name', 'intro', 'description', 'pro_pictures')

如果我遗漏了一些明显的东西,请告诉我。

最佳答案

你可以点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')


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]

关于json - 如何限制Django Rest Framework反向关系中的记录数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21903503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com