为什么thumbnail
模板标签不适用于下面详述的设置?Django solr-thumbnail redis配置
Django的项目以这种方式配置(相关文件的摘录):
settings.py(摘录)
INSTALLED_APPS = (
..
'sorl.thumbnail',
..
)
..
# solr-thumbnail related settings
THUMBNAIL_FORMAT = 'PNG'
THUMBNAIL_KVSTORE = 'sorl.thumbnail.kvstores.redis_kvstore.KVStore'
THUMBNAIL_REDIS_HOST = 'localhost' # default
THUMBNAIL_REDIS_PORT = '6379' # default
models.py
from django.db import models
from sorl.thumbnail import ImageField
class UserProfile(models.Model):
email = models.EmailField()
profile_pic = ImageField(upload_to='user_profile_imgs')
views.py(提取物)
form = NewUserForm(request.POST, request.FILES)
if form.is_valid():
user_inst = UserProfile(
email=form.cleaned_data['email'],
profile_pic=request.FILES['image']
)
user_inst.save()
return ..
HTML模板(摘录)
<p>Actual image</p> <!-- THIS WORKS -->
<img src="{{ user.profile_pic.url }}" alt="user profile pic">
<p>Cropped image</p> <!-- THIS DOES NOT WORK -->
{% thumbnail user.profile_pic "100x100" crop="smart" as im %}
<img src="{{ im.url }}" alt="user profile pic 100 by 100">
{% endthumbnail %}
裁剪的图像无法正常工作;根据sorl-django workflow,如果没有找到我配置的Redis缓存中的密钥,则应该创建新请求的映像。实际上,在检查时,redis缓存根本没有任何项目:
redis 127.0.0.1:6379> KEYS *
(empty list or set)
因此,sorl-thumbnail甚至没有在redis上创建密钥。我无法弄清楚问题所在,因为我什么都不例外。我有感觉我错过了某个步骤。 (通过蛋黄)
相关的Python包版本:
Django - 1.5.1 - active
Pillow - 2.0.0 - active
redis - 2.7.6 - active
sorl-thumbnail - 11.12 - active