我将尝试使用DRF中的嵌套序列化器,但输出中没有显示相关项。
这是我的
这是我的
model.py
文件:class Categorie(models.Model):
nom = models.CharField(max_length=100)
def __unicode__(self):
return unicode(self.nom)
class Item(models.Model):
nom = models.CharField(max_length=100)
disponible_a_la_vente = models.BooleanField(default = True)
nombre = models.IntegerField()
prix = models.DecimalField(max_digits=5, decimal_places=2)
history = HistoricalRecords()
categorie = models.ForeignKey(Categorie, models.CASCADE)
class Meta:
verbose_name = "item"
verbose_name_plural = u"inventaire"
ordering = ['categorie', 'nom']
def __unicode__(self):
return u'{nom} - {nombre}'.format(nom = self.nom, nombre = self.nombre)
和我的serializers.py
class ItemSerializer(serializers.ModelSerializer):
class Meta:
model = Item
fields = ('nom',)
class CategorieSerializer(serializers.ModelSerializer):
items = ItemSerializer(many=True)
class Meta:
model = Categorie
fields = ('nom', 'id', 'items')
我目前正在测试的视图非常基本:
class InventaireDetail(generics.RetrieveAPIView):
queryset = Categorie.objects.all()
serializer_class = CategorieSerializer
但是它给出了错误:
AttributeError:尝试在序列化程序
CategorieSerializer
上获取items
字段的值时出现AttributeError。序列化程序字段的名称可能不正确,并且与Categorie
实例上的任何属性或键都不匹配。原始异常文本为:“'Categorie'对象没有属性'items'。”
我已经寻找了一段时间,但即使在文档的帮助下,我也无法使其工作。