from imagekit.models import ImageSpecField
from imagekit.processors import ResizeToFill
class Image(models.Model):
image = models.ImageField(upload_to='home/', blank=True)
thumbnail = ImageSpecField(source='image', processors=[ResizeToFill(50, 50)],format='JPEG', options={'quality':60})
当我上传图片时。原始图像一切正常。但是没有缩略图。我想这个问题与缓存有关。也许我错了。不知道该怎么办。。。请帮忙。
为了"强制"生成文件,您的'IMAGEKIT_DEFAULT_CACHEFILE_STRATEGYshould implement
on_source_saved'。
提供了一个,但包,并添加:
IMAGEKIT_DEFAULT_CACHEFILE_STRATEGY = 'imagekit.cachefiles.strategies.Optimistic'
到您的settings.py
将强制在源保存时生成文件。
现在请注意:这"仅"在使用ImageSpecField
时有效,如果不正确处理源组,您可能很难将此策略用于templatetags
或ImageSpec
另一种方法是编写自定义CACHEFILE_STRATEGY``
In
some_app/strategy.py`
class CustomStrategy(object):
"""
A strategy that ensures file creation on save and existence
"""
def on_existence_required(self, file):
file.generate()
def on_content_required(self, file):
file.generate()
def on_source_saved(self, file):
file.generate()
现在,添加
IMAGEKIT_DEFAULT_CACHEFILE_STRATEGY = 'your_app.strategy.CustomStrategy'
对你的settings.py
应该像一个符咒一样工作。