Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检查sorl缩略图是否已使用低级API缓存图像_Python_Django_Caching_Sorl Thumbnail - Fatal编程技术网

Python 检查sorl缩略图是否已使用低级API缓存图像

Python 检查sorl缩略图是否已使用低级API缓存图像,python,django,caching,sorl-thumbnail,Python,Django,Caching,Sorl Thumbnail,Sorl缩略图有一个低级API,允许您执行以下操作,例如: from sorl.thumbnail import get_thumbnail im = get_thumbnail(my_file, '100x100', crop='center', quality=99) 这将返回对缓存文件的引用。如果它已经被创建了,它会非常快。但是,如果必须第一次创建它,则在使用远程存储(如S3)时可能需要很长时间 有没有办法在Python中运行命令(即不在模板中)来检查sorl是否必须第一次生成缩略图 另

Sorl缩略图有一个低级API,允许您执行以下操作,例如:

from sorl.thumbnail import get_thumbnail
im = get_thumbnail(my_file, '100x100', crop='center', quality=99)
这将返回对缓存文件的引用。如果它已经被创建了,它会非常快。但是,如果必须第一次创建它,则在使用远程存储(如S3)时可能需要很长时间

有没有办法在Python中运行命令(即不在模板中)来检查sorl是否必须第一次生成缩略图


另外,我知道类似的问题,但这是在模板上下文中询问的,并且有一个黑客解决方案作为答案,它使用自定义SQL而不是sorl API。

在我的版本
sorl.thumbnail
11.12
,方法
get\u thumbnail
在sorl.thumbnail.base.py中定义并按如下开始:

def get_thumbnail(self, file_, geometry_string, **options):
    """..."""
    source = ImageFile(file_)
    for key, value in self.default_options.iteritems():
        options.setdefault(key, value)
    # ...
    for key, attr in self.extra_options:
        value = getattr(settings, attr)
        if value != getattr(default_settings, attr):
            options.setdefault(key, value)
    name = self._get_thumbnail_filename(source, geometry_string, options)
    thumbnail = ImageFile(name, default.storage)
    cached = default.kvstore.get(thumbnail)
    if cached:
        return cached
    if not thumbnail.exists():
        ...
如果使用此代码并返回以下内容

cached or thumbnail.exists()
这会给你想要的结果