直接上代码了
class OrgListSerializer(serializers.ModelSerializer):
children = serializers.SerializerMethodField()
def get_children(self, obj):
pid = obj.id
return OrgListSerializer(Orgs.objects.filter(deltime=0, pid=pid), many=True).data
class Meta:
model = Orgs
fields = ('id', 'pid', 'sn', 'name', 'memo', 'children')
# 最终通过该方法实现删除控制。是针对instance而言的,如果有多个空值的话,可以for循环判断一下
def to_representation(self, instance):
"""delete children:[]"""
ret = super().to_representation(instance)
if not ret['children']:
ret.pop('children')
return ret