django rest framework serializer中related_name字段的属性错误

时间:2016-05-24 16:19:39

标签: python django django-rest-framework

我收到以下错误

  尝试在序列化程序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上针对类似问题的其他答案。

0 个答案:

没有答案