当ImageField的领域对象被删除不删除的图像文件(Image file not deleted

2019-06-26 06:19发布

我有一个模型, PictureImageField 。 当删除的实例Picture ,在设置文件ImageField不会被删除。

它是一个错误吗? 我该怎么做?

Answer 1:

与相关的文件的删除FileField S和ImageField S IN的Django 1.3 故意删除。 见票#6456 。 Django使用交易上,以防止数据损坏,如果出现错误的请求。 如果删除事务回滚支持,之后该文件已被从文件系统中删除,那么你现在有一个记录指向一个不存在的文件。 所有车票,要求自动删除返回已被草率注明“不会修复”,所以这是不会改变的。

对于解决办法,看到这个以前的StackOverflow问题 。



Answer 2:

假设?

class Picture(models.Model):
    image = ImageField(blank=True, null=True, upload_to="pics")

    def delete(self, *args, **kwargs):
        self.image.delete()
        super(Picture, self).delete(*args, **kwargs)

然后让手工创建和删除这个..

image = "./image.jpg"
picture = Picture.objects.create(image=File(open(image, "r"))
picture.save()

然后将其删除?

picture.delete()

HTH



文章来源: Image file not deleted when object with ImageField field is deleted