如何在Django Restframework嵌套序列化程序中创建Parent对象? 我想显示与父母相关的所有孩子 但是问题是,当我尝试创建“父母”时,它会询问孩子名单,并且按照规则,第一位父母将出生
模型
class Parent(models.Model)
name = models.CharField(max_length=30)
class Child(models.Model)
parent = models.ForeignKey(Parent, on_delete=models.CASCADE)
name = models.CharField(max_length=30)
序列化器
class ChildSerializer(ModelSerializer):
class Meta:
model = Child
fields = ('name')
class ParentSerializer(ModelSerializer):
children = ChildSerializer(many=True)
class Meta:
model = Parent
fields = ('name','children')
views.py
class ParentViewSet(ModelViewSet):
serializer_class = ParentSerializer
queryset = Parent.objects.all()
响应:
{
"children": [
"This field is required."
]
}
答案 0 :(得分:1)
使用此更新您的父母消除器
class ParentSerializer(ModelSerializer):
children = ChildSerializer(many=True, read_only=True)
class Meta:
model = Parent
fields = ('name','children')
使用
更新childSerializerclass ChildSerializer(ModelSerializer):
class Meta:
model = Child
fields = ('name',)
答案 1 :(得分:0)
您需要将required=False
添加到嵌套的ChildSerializer
:
class ParentSerializer(ModelSerializer):
children = ChildSerializer(many=True, required=False)
class Meta:
model = Parent
fields = ('name','children')