AttributeError: 'Model' object has no attribute '....' Django Rest Framework

AttributeError: 'Model' object has no attribute '....' Django Rest Framework

我有这个型号

class EntityPhoto(models.Model):
    user = models.ForeignKey('users.CustomUser', on_delete=models.CASCADE, null=True, related_name='entity_photo_user')
    entity = models.ForeignKey('Entity', on_delete=models.CASCADE)
    image = models.FileField(upload_to='entities/')
    created_at = models.DateTimeField(editable=False, default=timezone.now)
    updated_at = models.DateTimeField(default=timezone.now)
class Entity(models.Model):
....
class EntityPhotosSerializer(serializers.ModelSerializer):
    image = serializers.SerializerMethodField('get_img')

    def get_img(self, entity_photo):
        if not entity_photo.image:
            raise NotFound

        request = self.context.get('request')
        return request.build_absolute_uri(entity_photo.image.url)


    class Meta:
        model = EntityPhoto
        fields = ('user', 'entity', 'image',)


class SpecialistSerializer(serializers.ModelSerializer):
    reviews_quantity = serializers.IntegerField(source="get_reviews_quantity")

    class Meta:
        model = Entity
        fields = '__all__'

    def to_representation(self, instance):
        data = super().to_representation(instance)
        data['photos'] = EntityPhotosSerializer(many=True, instance=instance.image_set.all()).data
        return data

在发出 get 请求后我得到一个错误:

AttributeError: 'Entity' object has no attribute 'image_set'

这很奇怪,因为几天前我对一个通过反向关系以相同方式连接的模型做了同样的事情,我什至复制了代码并且它起作用了。你认为这可能是因为图像文件?我想为每个实体实例显示照片列表(序列化器更改为 url)。

您正在尝试访问“image_set”,但没有链接到实体的“图像”模型。但是,有一个EntityPhoto模型。

这样做

data['photos'] = EntityPhotosSerializer(many=True,instance=instance.image_set.all()).data

不应该给任何东西。

如果你想访问实体的相关实体照片,你应该这样做

data['photos'] = EntityPhotosSerializer(many=True,instance=instance.entityphoto_set.all()).data