DjangoRestful 递归嵌套序列化器实现

2019-12-03  本文已影响0人  Maxwell_Dncey

Django嵌套递归序列化器实现

最近在做自己的项目,需要返回评论表相关数据,我的评论表设计的是这样的,父id为空则是等级最高的父评论,然后依次为子、孙子。。。评论信息关联,类似于省市级三级联动,不过这个评论表的深度可以更深

我的评论表

1.刚开始采取的是序列化器嵌套

1.序列化器嵌套就简单多了,只不过就是层数比较多,然后后面都是重复的,下面是我刚开始的重复的序列化器嵌套

自己的模型类
2.优点是简单,但是缺点就是评论深度不太高,而且代码也太冗余了
3.虽然简单完成了,就去完善前端代码了,前端写着写着,把评论显示的递归实现了(jquery),所以就想着在完善一下,看看能不能使用序列化递归的方式完成.

2.递归序列化器

class Childrens_Conten_Serializer(ModelSerializer):
    user = User_Avatar_Url_Serializer()
    subs = serializers.SerializerMethodField()

    class Meta:
        model = Comment
        fields =('id','like','subs','content','user')

    def get_subs(self, obj):
       if obj.subs:
                return Childrens_Conten_Serializer(obj.subs,many=True).data
        else:
            return None
上一篇 下一篇

猜你喜欢

热点阅读