更改sorl缩略图格式

3 投票
1 回答
1610 浏览
提问于 2025-04-17 04:50

有人能给我一个例子,教我怎么在Django模板标签中改变SORL-thumbnail的格式吗?

我看过这里的文档:http://thumbnail.sorl.net/template.html#thumbnail

我尝试了很多方法,但都没有成功。我遇到的错误类似于:'thumbnail'标签收到了一个错误的参数:'format'

我的代码在没有“ format="png" ”的情况下运行得很好,只会生成一个jpg格式的缩略图。但是,我想要一个png格式的缩略图。
{% thumbnail product.main_image.picture 84x84 format="png" as image %}

另外,把THUMBNAIL_FORMAT = "PNG"加到我的settings.py里也没什么用。

谢谢!



更新:
这是我解决问题的方法:

所以Issac和zachwood说得对。这是一个版本相关的问题。我是这样解决的:

1.) 升级到最新的sorl
1.1) 运行syncdb
2.) 在设置中,把THUMBNAIL_DEBUG改为True
3.) 添加了闭合标签,让模板看起来像这样:

        {% thumbnail product.main_image.picture "400x284" format="PNG"  as image %}

<img src="{{ media_url }}{{ image }}" width="{{ image.width }}" height="{{ image.height }}" alt="{{ product.short_description }}"/>

        {% endthumbnail %}

成功了!

4.)

1 个回答

3

很遗憾,Satchmo使用的是SORL-Thumbnail的3.2.5版本,而那些文档是针对11版本的。我猜在3.x版本中,他们可能不支持某些格式。我找了很久也没找到相关的文档,但你可以试着查看代码来确认一下。

如果我没记错的话,你可以把库换成11版本,但你需要检查所有使用了模板标签的模板,并在每次使用后加上{% endthumbnail %}这个标签(在3.x版本时是没有使用这个结束标签的)。

撰写回答