直接上代碼了
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