Django 检查sorl缩略图是否已缓存图像
我正在运行一个django应用程序,其中包含sorl缩略图和大量远程图像(sorl从外部源加载图像) 理想情况下,我希望检查sorl是否已经在我的模板中缓存了一个图像,如果没有,则使用ajax加载该图像 阅读文档时,我发现一个Django 检查sorl缩略图是否已缓存图像,django,sorl-thumbnail,Django,Sorl Thumbnail,我正在运行一个django应用程序,其中包含sorl缩略图和大量远程图像(sorl从外部源加载图像) 理想情况下,我希望检查sorl是否已经在我的模板中缓存了一个图像,如果没有,则使用ajax加载该图像 阅读文档时,我发现一个exist方法似乎总是返回true {% thumbnail item.image "160x200" crop="center" as im %} {% if im.exists %} <img src="{{ im.url }}">
exist
方法似乎总是返回true
{% thumbnail item.image "160x200" crop="center" as im %}
{% if im.exists %}
<img src="{{ im.url }}">
{% else %}
<!-- load image with ajax -->
{% endif %}
{% endthumbnail %}
{%thumbnail item.image“160x200”crop=“center”as im%}
{%如果im.exists%}
{%else%}
{%endif%}
{%endthumbnail%}
是否有一种方法可以用来检查模板中是否已经缓存了图像?我最终为我的模型使用了一种方法 这是一些肮脏的原始sql,使用昂贵的%LIKE%
def has_image_cached(self):
from django.db import connection
cursor = connection.cursor()
cursor.execute("SELECT * FROM thumbnail_kvstore WHERE value LIKE %s",['%'+self.imageurl+'%'])
row = cursor.fetchone()
if row is None:
return False
return True
{%thumbnail item.image“160x200”crop=“center”as im%}如果缩略图不存在,则创建该缩略图。在下一行调用exists()将始终返回True,因为如果它不存在,则它是最近创建的。这很有意义。有没有办法在不创建实际图像的情况下创建缩略图对象?我可以在我看来查询kv商店。但这似乎有点黑客,可以通过使用sorl.thumboil.base中get_thumboil中的一些代码来实现。我认为,如果您使用第32行到第50行,并使其中的函数根据缓存的变量返回True/False