我试图列出Django rest Framework serializer中单个项的所有映像。
在模型中:
class Item(TimeStampedModel, AbsoluteUrlMixin, ObjectReviewsMixin):
...
class ItemImage(models.Model):
item = models.ForeignKey(Item, related_name='pictures')
picture = models.ImageField(null=True, blank=True, upload_to="items")
在视图集中:
^{pr2}$在序列化程序中:
class ItemImageSerializer(serializers.Serializer):
class Meta:
model = ItemImage
fields =(
'picture'
)
class ItemSerializer(ObjectReviewsSerializer):
pictures = ItemImageSerializer()
...
当我到达/items/1
时,我对字段图片的响应为空
像"pictures":{}
,而它应该返回图像列表。在
您正在将
pictures
字段包含在ImageSerializer
上,但没有告诉Django REST framework它可以接受多个值。在初始化时应将
many=True
传递到字段中它没有触发错误的原因是元组中的
'picture'
后面缺少逗号。强烈建议始终包含后面的逗号,否则将拆分单值元组。所以您的字段实际上是('p', 'i', 'c', 't', 'u', 'r', 'e', )
,这显然不是您想要的。在另一个原因是因为您使用的是
Serializer
,就像ModelSerializer
,所以实际上没有生成任何字段。Django-REST框架将忽略Meta.fields
中包含的任何未实际定义的字段,这就是为什么您总是得到一个空对象。在我在修改过的代码中包含了逗号,并将序列化程序改为
ModelSerializer
。在相关问题 更多 >
编程相关推荐