我正在使用sorl缩略图来裁剪一些图像。
我有一个看起来像这样的模型
from django.db import models
from sorl.thumbnail import ImageField
class Photo(models.Model):
image = models.ImageField(upload_to="uploads")
在我的模板中,我有
{% load thumbnail %}
{% thumbnail photo.image "200x100" as im %}
<img src="{{ im.url }}">
{% endthumbnail %}
这不会输出任何内容。如果我这样做<img src='{{photo.image.url}}'>
图像在浏览器中显示正常。我的INSTALLED_APPS里也有sorl缩略图,我同步了数据库并设置了thumbnail_kvstore表。
有人可以帮我吗?什么可能导致图像不被裁剪甚至显示?
你的代码看起来不错,所以问题应该来自其他部分。
您可以做的第一件事是在settings.py
中设置THUMBNAIL_DEBUG = True
,并查看发生错误的原因。
您是否使用virualenv
和PIL
进行图像库?确保您的PIL
是使用jpeg
和png/gif
支持编译和安装的,这需要libjpeg
和zlib
。
编辑:正如@DanielRoseman评论中指出的那样,您实际上是在使用django.db.models.ImageField
,更改
image = models.ImageField(upload_to="uploads")
自
image = ImageField(upload_to="uploads")
以改用sorl.thumbnail.ImageField
。
尝试执行清理,如果清理失败,请清除。文档
当我获得意外输出时,这为我解决了问题。也许它会为你工作。