【发布时间】:2014-08-11 21:16:06
【问题描述】:
我想做如下的事情:
models.py
class Container(models.Model):
size = models.CharField(max_length=20)
shape = models.CharField(max_length=20)
class Item(models.Model):
container = models.ForeignKey(Container)
name = models.CharField(max_length=20)
color = models.CharField(max_length=20)
class ItemSetting(models.Model):
item = models.ForeignKey(Item)
attribute_one = models.CharField(max_length=20)
attribute_two = models.CharField(max_length=20)
serializers.py
class ItemSettingSerializer(serializers.ModelSerializer):
class Meta:
model = ItemSetting
class ItemSerializer(serializers.ModelSerializer):
settings = ItemSettingSerializer(many=True)
class Meta:
model = Item
fields = ('name', 'color', 'settings')
class ContainerSerializer(serializers.ModelSerializer):
items = ItemSerializer(many=True)
class Meta:
model = Container
fields = ('size', 'shape', 'items')
当我只嵌套一层(容器和项目)时,它对我有用。但是当我尝试使用 ItemSetting 添加另一个级别的嵌套时,它会抛出 AttributeError 并抱怨 'Item' object has no attribute 'settings'
我做错了什么?
【问题讨论】:
标签: django serialization django-rest-framework