如何更改或覆盖sorl-thumbnail缓存路径并使用绝对路径添加图像?

时间:2013-05-15 12:08:28

标签: python django sorl-thumbnail

我有和mediaservice网站和我的文件存储位于媒体文件夹的其他文件夹中,我想在其他文件夹中缓存缩略图,如何更改sorl-thumbnail缓存文件夹以及如何使用绝对路径制作图像缩略图?

1 个答案:

答案 0 :(得分:5)

请查看the class responsible,了解由sorl-thumbnail生成的缩略图。

您可以将其子类化并使用自定义类作为缩略图后端:

# in your settings.py:
THUMBNAIL_BACKEND = 'path.to.MyThumbnailBackend'


#some module, in one of yours apps:
from sorl.thumbnail.base import ThumbnailBackend
from sorl.thumbnail.conf import settings
from sorl.thumbnail.helpers import tokey, serialize

class MyThumbnailBackend(ThumbnailBackend):
    def _get_thumbnail_filename(self, source, geometry_string, options):
        """
        Computes the destination filename.
        """
        key = tokey(source.key, geometry_string, serialize(options))
        # make some subdirs
        path = '%s/%s/%s' % (key[:2], key[2:4], key)
        return '%s%s.%s' % (settings.THUMBNAIL_PREFIX, path,
                            EXTENSIONS[options['format']])

之前的代码段是_get_thumbnail_filename的原始代码。您可以调整此代码以便在方便时生成名称。