Django Rest Framework:使用RelatedField时出现空列表

0 投票
1 回答
1478 浏览
提问于 2025-04-18 18:01

我有以下的django模型

class Cast(models.Model):
    coordinates = models.PointField()

class CastImage(models.Model):
    image = models.ImageField(upload_to="castimages")
    cast = models.ForeignKey(Cast, blank=True, null=True, related_name='images')

还有以下的序列化器

class CastSerializer(serializers.ModelSerializer):
    images = serializers.RelatedField(many=True)
    class Meta:
        model = Cast
        fields = ('images',)

这些看起来和文档中提到的内容很相似:http://www.django-rest-framework.org/api-guide/relations#relatedfield

但是当我测试这个Cast对象的序列化器时,尽管这些Cast对象确实有图片(我确认过了),我却只得到了空的图片列表:

"results": [
        {
            "images": []
        }, 
        {
            "images": []
        }, 
        {
            "images": []
        } ]

我漏掉了什么呢?

1 个回答

1

如果你是通过 Cast 来访问图片,我猜你的字段设置可能有问题。试试这个:

class CastSerializer(serializers.ModelSerializer):
  images = serializers.RelatedField(many=True)
  class Meta:
    model = Cast
    fields = ('castimage__image',)

撰写回答