我一直在查看 sorl-thumbnail 的文档,但我仍然不知道如何: 1. 将图像上传到 sorl-thumbnail。2. 选择性地显示来自 sorl-thumbnail 的图像。(例如,从视图中从 sorl-thumbnail 加载特定图像并显示它,自定义大小等)
你能给出一些关于如何在 django 视图中使用这个库的具体例子吗?
提前致谢 : )
我一直在查看 sorl-thumbnail 的文档,但我仍然不知道如何: 1. 将图像上传到 sorl-thumbnail。2. 选择性地显示来自 sorl-thumbnail 的图像。(例如,从视图中从 sorl-thumbnail 加载特定图像并显示它,自定义大小等)
你能给出一些关于如何在 django 视图中使用这个库的具体例子吗?
提前致谢 : )
如果您想要更大的灵活性,您可以在视图中生成缩略图。以下内容直接来自sorl-thumbnail 文档:
from sorl.thumbnail import get_thumbnail
im = get_thumbnail(my_file, '100x100', crop='center', quality=99)
im
then 与您从thumbnail
模板标签返回的内容相同。因此,您可以将该变量添加到模板上下文中,或者只是其中的一部分。例如,如果您只想要 URL:
my_context = {
'image_url': im.url,
}
您可以通过缩略图模板标签使用 sorl.thumbnail。这是一个例子:
{% load thumbnail %}
{% thumbnail recipe.image "430x250" as thumb %}
<img src="{{ thumb.url }}" width="{{ thumb.width }}" height="{{ thumb.height }}" alt="{{ recipe.title }}" />
{% endthumbnail %}
您不会将图像上传到 sorl.thumbnail 或从 sorl.thumbnail 加载它们。正确配置后,它将自动调整大小并存储图像,您可以使用thumbnail
模板标签获取图像的正确 URL。
当我必须使用 sorl-thumbnail 时,我会区分两种图像:
当我在 Django 中有一个带有 ImageField 的对象时,我用这样的缩略图渲染它:
# Let's supose our object imagefield is called img
{% thumbnail obj.img "100" upscale=false as im %}
<img src="{{ im.url }}"/>
{% empty %} # In case the object doesn't have an image, use generic one
{% thumbnail "img/empty_img.jpg" "236" upscale=false as im %}
<img src="{{ im.url }}" />
{% endthumbnail %}
{% endthumbnail %}
使用项目的本地路径加载图像:
{% thumbnail "img/myImage.jpg" "236" upscale=false as im %}
<img src="{{ im.url }}" />
{% endthumbnail %}
重要提示:请记住,缩略图将MEDIA_URL连接到您提供的路径,因此在这种情况下,您需要类似的路径yourapp/media/img/myImage.jpg
使用URL加载图像很简单,示例如下:
{% thumbnail "http://www.nextgen-gallery.com/wp-content/uploads/2008/12/abend.jpg" "236" upscale=false as im %}
<img src="{{ im.url }}" />
{% endthumbnail %}