【发布时间】:2019-11-09 18:13:56
【问题描述】:
如何创建一个序列化程序,以返回 family 的所有结果以及所有反向关系?
Family
|
+------+------+
| |
Student EmergencyContact
|
Fee
例如
{family: [{id: 1,
student_set: [{id: 1, name: "bob Jones", fee_set: [{"Maths Fee": 3, "English Fee": 5}}],
{id: 2, name: "Mike Jones", fee_set: [{"English Fee": 5}}],
emergency_contact_set: [{id: 1, name:"Joe"}, {id: 2, name: "Mike"}]
]
}
我可以在字段中使用<model>_set 获得单个嵌套级别的数据,例如student_set, emergency_contact_set,但不是深嵌套,(fee_set)。
class FamilySerializer(serializers.ModelSerializer):
student = StudentSerializer(many=True, read_only=True) # does nothing
class Meta:
model = Family
fields = ["id",
"name",
"student", # returns nothing
"student_set" # only returns the students WITHOUT the fees
]
输出(没有fees):
{family: [{id: 1,
student_set: [{id: 1, name: "bob Jones"}],
{id: 2, name: "Mike Jones"}],
emergency_contact_set: [{id: 1, name:"Joe"}, {id: 2, name: "Mike"}],
]
}
理想情况下,我想在Family 中使用StudentSerializer 和EmergencyContactSerializer,以获取嵌套集。
【问题讨论】:
标签: django django-rest-framework