You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用easy-thumbnails遇TemplateSyntaxError:模板语法解析失败求助

解决easy-thumbnails模板TemplateSyntaxError错误

错误原因分析

你遇到的TemplateSyntaxError是因为两处核心语法问题:

  • thumbnail是Django模板标签,不能用变量输出的{{ }}包裹,必须使用标签专用的{% %}语法调用。
  • 调用thumbnail时参数格式错误,尺寸参数需要用引号包裹,且需将生成的缩略图对象赋值给变量后再使用。
  • 额外问题:模板中{% if i.image.thumbnail != null %}的写法不符合Django模板规范,直接用{% if i.image.thumbnail %}即可判断是否存在有效值。

修正后的模板代码

{% load thumbnail %} <!-- 务必确保加载了thumbnail标签 -->
{% for i in image_page.object_list %}
<div class="col-6 mb-4 grid-item" style="display: none;">
    <!-- Image thumbnail for gallery -->
    <div>
        {% if i.image.thumbnail %}
            {% with thumb_url=i.image.thumbnail.url %}
        {% else %}
            {% thumbnail i.image "320x260" as thumb %}
                {% with thumb_url=thumb.url %}
        {% endif %}
        <img class="img img-responsive" 
             src="{{ thumb_url }}" 
             alt="{{ lot.product.title }}"
             data-toggle="modal" data-target="#lightboxModal" 
             data-image-url="{{ i.image.url }}" data-pk="{{ i.pk }}"
             style="cursor: pointer;">
        {% endwith %}
    </div>
</div>
{% endfor %}

补充说明

  • easy-thumbnails会自动缓存生成的缩略图,后续请求会直接读取已生成的文件,无需额外手动判断是否已生成(这里保留了你需求中针对对象thumbnail字段的判断逻辑)。
  • 必须在模板顶部添加{% load thumbnail %},否则标签无法被识别。

内容的提问来源于stack exchange,提问作者Devasya Dave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 17:44:55