Я относительно новичок в использовании Django и Django Rest Framework, но вот что я пытаюсь сделать.
У меня есть две модели:
class Parent(models.Model):
name = models.CharField()
class Child(models.Model):
parent = models.ForeignKey(Parent)
name = models.CharField()
age = models.IntegerField()
class Meta:
unique_together = ('parent', 'name',)
Я хочу сериализоватьparent таким образом, что GET для родителя возвращает что-то в форме:
{
name: <parent name>,
children: {
<child name 1>: <age>,
<child name 2>: <age>
}
}
В настоящее время я могу только выяснить, как вернуть список дочерних элементов с помощью сериализатора, такого как:
class ParentSerializer(serializers.ModelSerializer):
children = ChildrenSerializer(many=True,read_only=True)
class Meta:
model = Parent
fields = '__all__'
Что возвращает:
{
name: <parent name>,
children: [
{
name: <child name 1>,
age: <child age 1>
},
{
name: <child name 2>,
age: <child age 2>
}
]
}
Как я могу заставить родительский сериализатор возвращать один словарь в разделе 'children' с ключом имени ребенка вместо списка словарей?