Django媒体文件自动删除
当我通过Django administrator上传图像并再次删除图像文件时,为什么它不删除Django媒体文件自动删除,django,Django,当我通过Django administrator上传图像并再次删除图像文件时,为什么它不删除/media目录中的图像 当我删除图像文件时,我希望它自动删除图像,甚至从目录中删除,而不仅仅是从模型实例中删除 我的模型: class ImageForExtractText(models.Model): image = models.FileField() 和设置: STATIC_URL = '/static/' STATIC_ROOT = os.path.join(os.path.dirn
/media
目录中的图像
当我删除图像文件时,我希望它自动删除图像,甚至从目录中删除,而不仅仅是从模型实例中删除
我的模型:
class ImageForExtractText(models.Model):
image = models.FileField()
和设置:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static")
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "media")
从Django administration中删除映像文件时,我应该怎么做才能做到这一点?它应该从Django管理和媒体目录中删除。Django不会在删除时删除文件 您可以添加删除文件的信号:
from django.db.models.signals import pre_delete
from django.dispatch.dispatcher import receiver
class ImageForExtractText(models.Model):
image = models.FileField()
@receiver(pre_delete, sender=ImageForExtractText)
def delete_image(sender, instance, **kwargs):
# Pass false so FileField doesn't save the model.
if instance.image:
instance.image.delete(False)
这里已经有一个类似的问题,有很多答案: