Как я могу создать сериализатор, который возвращает все результаты для 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"}],
]
}
В идеале я хотел бы использовать StudentSerializer
и EmergencyContactSerializer
внутри Family
, чтобы получить вложенные множества.