我在Django 1.5项目中使用easy-thumbnails来生成缩略图。
我一直在使用几种不同尺寸的缩略图进行测试,但现在我想从我的文件系统和easy-thumbnails数据库条目中清除所有缩略图。随着时间的推移,我创建了许多不同大小的图像,我想现在删除它们。
我的目的是从一个干净的平板开始并删除所有缩略图。我无法知道该怎么做。
答案 0 :(得分:7)
遇到同样的问题。
假设:
class MyModel(Model):
image = ThumbnailerImageField()
您可以删除所有缩略图:
for m in MyModel.objects.all():
m.image.delete_thumbnails()
如果你改为:
class MyModel(Model):
image = ImageField()
然后你应该使用:
from easy_thumbnails.files import get_thumbnailer
for m in MyModel.objects.all():
thumbnailer = get_thumbnailer(m.image)
thumbnailer.delete_thumbnails()
答案 1 :(得分:4)
我创建了一个Picture模型,我在其中添加了一个方法,如下所示
from easy_thumbnails.models import Source, Thumbnail
def clean_thumbnail(self):
if self.image:
sources = Source.objects.filter(name=self.image.name)
if sources.exists():
for thumb in Thumbnail.objects.filter(source=sources[0]):
try:
os.remove(os.path.join(settings.MEDIA_ROOT, thumb.name))
thumb.delete()
except Exception, e:
logger.warning(e)
它就像一个魅力。