在模板中重命名SORL-缩略图(Renaming sorl-thumbnail images in

2019-10-18 13:27发布

我通过使用SORL-缩略图 thumbnail在我的Django模板模板标签,如下所示:

{% thumbnail foo.imgA "1600x1200" as im %}
<a href='{{ im.url }}' title='{{ foo.imgA.url }}'>
{% endthumbnail %}

原来的文件名中包含的一些信息是相关的情况下,他们下载我的用户。 当我使用SORL-缩略图调整图像大小,调整后的图像得到一个新的名字。

是否有对SORL-缩略图 -生成图像的方式来保持原始文件的名称(或者追加“-thumb”),或在模板中使用代码的文件重命名? (我想独自离开的型号。)

Answer 1:

是的,它是可以通过创建基于默认的一个自己的后端和重载_get_thumbnail_filename方法。

例如,像这样

from sorl.thumbnail.base import ThumbnailBackend, EXTENSIONS

from sorl.thumbnail.conf import settings
from sorl.thumbnail.helpers import tokey, serialize
import os.path

class KeepNameThumbnailBackend(ThumbnailBackend):

    def _get_thumbnail_filename(self, source, geometry_string, options):
        """
        Computes the destination filename.
        """
        key = tokey(source.key, geometry_string, serialize(options))

        filename, _ext = os.path.splitext(os.path.basename(source.name))

        path = '%s/%s' % (key, filename)
        return '%s%s.%s' % (settings.THUMBNAIL_PREFIX, path, EXTENSIONS[options['format']])

然后,你必须在你的项目激活这个新的后端settings.py

THUMBNAIL_BACKEND = 'path.to.KeepNameThumbnailBackend'

我希望它能帮助



文章来源: Renaming sorl-thumbnail images in templates