我的模型Picture
带有ImageField
。删除Picture
的实例时,ImageField
中设置的文件不会被删除。
这是一个错误吗?我该怎么办?
答案 0 :(得分:27)
删除与FileField
和ImageField
相关联的文件在Django 1.3中被有意删除。见ticket #6456。如果请求出现问题,Django会广泛使用事务来防止数据损坏。如果滚动支持删除事务,则从文件系统中删除文件后,您现在有一条指向不存在的文件的记录。所有要求自动删除的门票都被简单地标记为“不会修复”,所以这不会改变。
有关解决方法,请参阅this previous StackOverflow question。
答案 1 :(得分:0)
假设?
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