Django ImageFieldFile对象没有属性StartWith

Django ImageFieldFile对象没有属性StartWith,django,django-models,Django,Django Models,使用删除信号上的S3,我试图从S3中删除图像,我尝试了以下操作(见下文),但出现错误 “ImageFieldFile”对象没有属性“startswith” def product_pre_delete(sender, instance, **kwargs): """ Sent at the beginning of a product delete() method product queryset's delete() method. """ default_s

使用删除信号上的S3,我试图从S3中删除图像,我尝试了以下操作(见下文),但出现错误

“ImageFieldFile”对象没有属性“startswith”

def product_pre_delete(sender, instance, **kwargs):
    """
    Sent at the beginning of a product delete() method product queryset's delete() method.
    """
    default_storage.delete(instance.qr_image)

models.signals.pre_delete.connect(product_pre_delete, sender=Product)

据我所知,django storages只会在删除对象本身时删除文件(向下滚动到删除部分)


如果要保留对象,但删除文件,则可能需要使用,这是django storages在使用S3时使用的底层库。

我也遇到了这个问题,发现'ImageFieldFile'对象没有属性“startswith”会抛出错误,因为您使用的是file对象,而不是file.name。使用对象在本地工作,但不适用于AWS。下面的代码应该可以工作,因为我能够成功删除仍然与对象关联的文件

default_storage.delete(instance.qr_image.name)

好吧,我想我必须删除我的坏对象。但是,当对象被删除时,它似乎不会删除该文件。这是默认值吗?如果有其他对象使用它,它不会删除该文件。