为什么thumbnail
模板标签不适用于如下详述的设置?
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
模型.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')
视图.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 工作流程,如果在我配置的 Redis 缓存中找不到密钥,则应创建新请求的图像。事实上,当检查 redis 缓存时根本没有任何项目:
redis 127.0.0.1:6379> KEYS *
(empty list or set)
所以 sorl-thumbnail 甚至没有在 redis 上创建密钥。我无法弄清楚问题是什么,因为我没有任何例外。我觉得我在某个地方错过了一步。
相关的 Python 包版本(通过 yolk):
Django - 1.5.1 - active
Pillow - 2.0.0 - active
redis - 2.7.6 - active
sorl-thumbnail - 11.12 - active