gpt4 book ai didi

python - Django Rest Framework 递归嵌套父序列化

转载 作者:太空宇宙 更新时间:2023-11-04 07:06:54 24 4
gpt4 key购买 nike

我有一个模型,它有一个名为 parent 的自引用字段。型号:

class Zone(BaseModel):
name = models.CharField(max_length=200)
parent = models.ForeignKey('self', models.CASCADE, blank=True, null=True, related_name='children')

def __unicode__(self):
return self.name

序列化器:

class ZoneSerializer(ModelSerializer):
parent = PrimaryKeyRelatedField(many=False, queryset=Zone.objects.all())
parent_disp = StringRelatedField(many=False, source="parent")

class Meta:
model = Zone
fields = ('id', 'name', 'parent', 'parent_disp')

现在我想序列化区域的父级及其父级和它的父级直到父级为无。我为 child 找到了递归序列化方法,但没有为 parent 找到递归序列化方法。我该怎么做?

最佳答案

好的,我就这样工作了。

class ZoneSerializer(ModelSerializer):
parent = SerializerMethodField()

class Meta:
model = Zone
fields = ('id', 'name', 'project', 'parent',)

def get_parent(self, obj):
if obj.parent is not None:
return ZoneSerializer(obj.parent).data
else:
return None

关于python - Django Rest Framework 递归嵌套父序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39104575/

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