14

我有一个Picture带有ImageField. 删除 的实例时,不会删除Picture中设置的文件。ImageField

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

4

2 回答 2

30

在 Django 1.3中有意FileField删除了与s 和ImageFields关联的文件。见票 #6456。如果请求出现问题,Django 广泛使用事务来防止数据损坏。如果删除事务被回滚,则在文件从文件系统中删除后,您现在有一条指向不存在文件的记录。所有要求自动删除返回的票已被简要标记为“不会修复”,因此这不会改变。

有关解决方法,请参阅之前的 StackOverflow 问题

于 2012-07-12T16:47:25.560 回答
1

假设?

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()

高温高压

于 2012-07-12T16:52:07.720 回答