本文最后更新于 498 天前,其中的信息可能已经有所发展或是发生改变。
Django在admin后台直接删除一条数据时, file = models.FileField(upload_to=‘file’)
上传的文件并不会删除。通过配置钩子函数可以解决这个问题。
在models.py加入以下内容
from django.db.models.signals import pre_delete
from django.dispatch.dispatcher import receiver
@receiver(pre_delete, sender=AddDateModel)
def mymodel_delete(sender, instance, **kwargs):
# Pass false so FileField doesn't save the model.
instance.file.delete(False)
其中的sender=AddDateModel
替换为对应模型类名即可。