我尝试使用Django sorl-thumbnail,但它不显示图像(并且不显示任何错误)。
Settings.py:
INSTALLED_APPS = (
....
'sorl.thumbnail',
)
型号:
class Toy(models.Model):
name = models.CharField(max_length=50, verbose_name=u'Name')
image = ImageField(upload_to='site_media/images')
模板:
<div id="toy">
{% for p in toys %}
<div class="toy">
# toy.image - this is model_name.image field
{% thumbnail toy.image "100x700" as im %}
<img style="margin:{{ im|margin:"100x700" }}" src="{{ im.url }}" width="{{ im.x }}" height="{{ im.y }}">
{% endthumbnail %}
<p>
<span> {{ p.name }} </span>
<span> {{p.unit_price}} </span>
</p>
</div>
{% endfor %}
</div>
urls.py:
url(r'^site_media/(.*)$', 'django.views.static.serve', {'document_root' : os.path.join(os.path.dirname(__file__), 'site_media')}),
答案 0 :(得分:13)
实际上,只有在删除原始图像时automatically delete缩略图才需要使用sorl中的ImageField。
默认情况下,sorl.thumbnail不会显示任何错误,如果缩略图创建不成功,则会无声地失败。要查看错误,请添加
THUMBNAIL_DEBUG = True
到您的settings.py。这可以帮助您解决问题。
答案 1 :(得分:3)
Have you imported来自模型定义中sorl的ImageField?有必要让它自动运行。
此外you need to run in console ./manage.py syncdb
因为在默认配置中,sorl会在数据库中保留缩略图的缓存名称。它必须在数据库中为它创建自己的表。
您是否还可以显示STATIC_URL,STATICFILES_DIRS等设置?