我在使用Django中的rest框架以多对一关系保存新Child
时遇到了麻烦。出于某种原因,问题仅在创建新记录时出现,而不是在编辑现有记录时出现。
class Parent(models.Model):
name_parent = models.CharField(max_length=200)
class Child(models.Model):
parent = models.ForeignKey(Parent, related_name="children")
name_child = models.CharField(max_length=200)
class ParentSerializer(serializers.ModelSerializer):
class Meta:
model = Parent
fields = ('id', 'name_parent')
class ChildSerializer(serializers.ModelSerializer):
class Meta:
model = Child
fields = ('id', 'parent', 'name_child')
depth = 1
当我在depth = 1
中没有ChildSerializer
时,我可以使用以下json成功添加新的孩子:
{"id":"new", "name_child":"child", "parent":1}
现在有了depth
,上面会抛出"non_field_errors": ["Invalid data"]
,而下面会抛出{"parent": ["This field cannot be null."]}
:
{"id":"new", "name_child":"child", "parent":{"id":1, "name_parent":"parent"}}
(如果我传递一些id值而不是new
)