Django ImageFieldFile对象没有属性StartWith
使用删除信号上的S3,我试图从S3中删除图像,我尝试了以下操作(见下文),但出现错误 “ImageFieldFile”对象没有属性“startswith”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
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)
好吧,我想我必须删除我的坏对象。但是,当对象被删除时,它似乎不会删除该文件。这是默认值吗?如果有其他对象使用它,它不会删除该文件。