Django sorl删除条目时不删除父文件或缓存的缩略图

Django sorl删除条目时不删除父文件或缓存的缩略图,django,django-models,sorl-thumbnail,Django,Django Models,Sorl Thumbnail,我不确定我做错了什么。但是当条目被删除时,上传的文件及其相关缓存不会被删除 我有一个属性模型的内联照片模型,从照片模型到属性模型有一个FK。我正在使用“from sorl.thumboil import ImageField”替换默认的Django models.ImageField 在Django Admin中,当我删除照片条目时,该条目会被删除,但该条目的文件不会被删除。我正在使用Django的runserver进行开发,没有发现任何错误。根据我所读到的,如果条目被删除,这些文件应该被删除,

我不确定我做错了什么。但是当条目被删除时,上传的文件及其相关缓存不会被删除

我有一个属性模型的内联照片模型,从照片模型到属性模型有一个FK。我正在使用“from sorl.thumboil import ImageField”替换默认的Django models.ImageField

在Django Admin中,当我删除照片条目时,该条目会被删除,但该条目的文件不会被删除。我正在使用Django的runserver进行开发,没有发现任何错误。根据我所读到的,如果条目被删除,这些文件应该被删除,除非有对它们的引用。我现在看到的唯一引用是在缩略图存储表中


有人对我遗漏的内容有什么想法吗?

来自
sorl的
ImageField
缩略图应该是django的
FileField

从:

在早期的Django版本中,当删除包含FileField的模型实例时,FileField会自行从后端存储中删除该文件。这为几种可能严重的数据丢失场景打开了大门,包括引用同一文件的不同模型上的回滚事务和字段。在Django 1.2.5中,FileField永远不会从后端存储中删除文件。如果需要清理孤立文件,则需要自己处理(例如,使用自定义管理命令,该命令可以手动运行,也可以通过cron定期运行)


delete_file方法将仅在Djangosorl.thumboil.ImageField
文件、缩略图和键值存储引用(由sorl thumboil使用)的最佳方法是使用
sorl.thumboil.delete
函数:
sorl.thumboil.delete(self.photo)
我在django文件浏览器中遇到问题,当您用新的图像替换图像时,缓存的文件没有更新。所以在我的例子中,这不是sorl缩略图的问题,而是django文件浏览器的问题。sorl只会在文件路径更改时重新绘制缩略图。要解决此问题,我将filebrowser filebrowser\u OVERWRITE\u现有设置设置设置为False

FILEBROWSER_OVERWRITE_EXISTING = False

如果某人不使用django filebrowser,这至少可以帮助他们调试问题。但对于django filebrowser来说,这是一条路要走。干杯。

根据sorl中的ImageField,它是FileField的扩展。但是,它确实定义了一个delete_file方法,该方法声明它应该删除这些文件。问题是,它似乎并不是自己在说这件事。可能是因为你刚才指出的。所以我想我在想,我能用这个方法吗?如果是这样,使用它的最佳方式是什么?我可以使用delete属性获得一个有效的解决方案
def delete(self):delete(self.photo)super(PropertyPhotos,self).delete()