我收到以下错误
尝试在序列化程序children
上获取字段ParentSerializer
的值时,出现AttributeError。 序列化程序字段可能名称不正确,并且与
Child
实例上的任何属性或键都不匹配。 原始例外文字是:'儿童'对象没有属性'孩子'。
这是我的model.py
class Parent(models.Model):
name = models.CharField(max_length=200)
def __unicode__(self):
return self.name
def __str__(self):
return self.name
class Child(models.Model):
name = models.CharField(max_length=200)
parent = models.ForeignKey(Parent, related_name='children')
和我的serializers.py
class ParentSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Parent
fields = ('id','name')
class ChildSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Child
fields = ('id','name')
class ParentChildSerializer(serializers.HyperlinkedModelSerializer):
children = ChildSerializer(many=True)
class Meta:
model = Parent
fields = ('id', 'name','children')
def create(self, validated_data):
... creation logic ...
return parent
def update(self, instance, validated_data):
... update logic ...
return instance
我使用的是related_name和Many = True,这是SO上针对类似问题的其他答案。