Django Rest Framework递归嵌套父级序列化 [英] Django Rest Framework Recursive Nested Parent Serialization

查看:345
本文介绍了Django Rest Framework递归嵌套父级序列化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有自参考字段的模型,称为parent。
模型:

I have a model with a self referential field called parent. Model:

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')

现在我要序列化区域的父级及其父级及其父级,直到父级都不存在为止。
我为孩子找到了递归序列化方法,但是给父母却没有。
我该怎么做?

Now I want to serialize the parent of the zone and its parent and its parent till parent is none. I found recursive serialization methods for children but not for parent. How can I do this?

推荐答案

尝试使用 SerializerMethodField 此处:

def get_parent(self, obj):
    # query what your want here.

我不确定DRF是否具有内置方法,但是您可以使用查询来获取这种方法想要什么。

I'm not sure D-R-F has build-in methods for this, but you can use query to get what you want in this method.

这篇关于Django Rest Framework递归嵌套父级序列化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆