Django 重命名模板中的sorl缩略图图像

Django 重命名模板中的sorl缩略图图像,django,sorl-thumbnail,Django,Sorl Thumbnail,我通过Django模板中的thumboiltemplate标记使用sorl缩略图,如下所示: {% thumbnail foo.imgA "1600x1200" as im %} <a href='{{ im.url }}' title='{{ foo.imgA.url }}'> {% endthumbnail %} {%thumbnail foo.imgA“1600x1200”作为im%} {%endthumbnail%} 原始文件名包含一些与我的用户相关的信息,以防他们下载。

我通过Django模板中的
thumboil
template标记使用sorl缩略图,如下所示:

{% thumbnail foo.imgA "1600x1200" as im %}
<a href='{{ im.url }}' title='{{ foo.imgA.url }}'>
{% endthumbnail %}
{%thumbnail foo.imgA“1600x1200”作为im%}
{%endthumbnail%}
原始文件名包含一些与我的用户相关的信息,以防他们下载。当我使用sorl缩略图调整图像大小时,调整大小的图像将获得一个新名称


sorl缩略图生成的图像是否有办法保留原始文件的名称(可能附加“-thumb”),或者使用模板中的代码重命名文件?(我想不使用模型。)

是的,可以根据默认的后端创建自己的后端,并重载
\u get\u thumbnail\u 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'
我希望有帮助