当我删除具有FileField的模型实例时,实际文件将保留在MEDIA_ROOT文件夹中。为了解决这个问题,我正在监听post_delete信号,并执行此操作:
def delete_actual_file(sender,**kwargs):
import os
instance = kwargs.get("instance")
os.unlink(instance.file.path)
post_delete.connect(delete_actual_file,sender=ModelWithFileField)
它似乎工作正常,但我不确定这样做是否是最好的做法。有什么想法吗?
答案 0 :(得分:2)
您使用的是哪个版本的Django? behaviour changed in Django 1.3。here。您可能想要的文档是{{3}},您可以将其挂钩到您的信号中,但我想它必须成为预删除操作。