【发布时间】:2021-07-07 17:52:34
【问题描述】:
序列化器.py
class RecursiveField(serializers.Serializer):
def to_representation(self, value):
serializer = self.parent.parent.__class__(value, context=self.context)
return serializer.data
class CategorySerializer(serializers.ModelSerializer):
children = RecursiveField(many=True)
class Meta:
model = Category
fields=('id', 'title', 'description', 'children',)
它返回如下响应数据:
{
"id": 1,
"title": "Bike",
"description": "",
"children": []
},
{
"id": 2,
"title": "Car",
"description": "",
"children": [
{
"id": 3,
"title": "Honda",
"description": "",
"children": []
}
]
},
{
"id": 3,
"title": "Honda",
"description": "",
"children": []
}
如上所示,ID为3的类别已重复。如果一个类别是某个类别的子类别,那么我不希望它再次单独显示。 我想要这样的响应数据:
{
"id": 1,
"title": "Bike",
"description": "",
"children": []
},
{
"id": 2,
"title": "Car",
"description": "",
"children": [
{
"id": 3,
"title": "Honda",
"description": "",
"children": []
}
]
}
有人可以帮我解决吗?
【问题讨论】:
标签: django-rest-framework django-mptt