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

Django TemplateSyntaxError:解析'{{'失败,图片展示问题求助

解决Django模板加载产品图片的语法错误

问题分析

你遇到的TemplateSyntaxError是两个原因导致的:

  1. Django模板语法不允许在{% static %}标签内部嵌套{{ }}变量标记
  2. 模板中使用的{{ path }}变量,和视图传入上下文的键category不匹配

解决方案

1. 修正变量名匹配

视图里你把图片路径赋值给了上下文的category键,所以模板里要对应使用{{ category }};或者修改视图的上下文键为path,保持和模板变量名一致:

# views.py 修改上下文键(二选一即可)
slovar = {"product": product, "path": path}

2. 修正static标签语法

直接在{% static %}标签中使用变量名,不需要嵌套{{ }}:

<!-- 若用视图原上下文键category -->
<img src="{% static category %}" alt="product picture" width="540" height="300">

<!-- 若修改视图上下文键为path -->
<!-- <img src="{% static path %}" alt="product picture" width="540" height="300"> -->

3. 验证图片路径正确性

确保path_to_foto字段存储的是相对于static目录的路径:比如图片实际存放在static/media/xxx.jpg,则path_to_foto的值应为media/xxx.jpg,不要加static/前缀({% static %}标签会自动拼接STATIC_URL前缀,默认是/static/)。

修正后的完整模板代码

{% extends 'products.html' %}
{% load static%}
{% block title %}Продукт{% endblock %}

{% block page_content %} 
        {% if product %}
                <p>Путь до фото: {{ category }} </p>
                <img src="{% static category %}" alt="product picture" width="540" height="300">   
                <p><b>Категоия: </b>{{ product.category }} </p>
                <p><b>Название: </b>{{ product.name }}</p>
                <p><b>Марка: </b>{{ product.marka }}</p>
                <p><b>Привод: </b>{{ product.privod }}</p>
                <p><b>Лошадиные силы: </b>{{ product.loshad_sila }}</p>
                <p><b>Коробка передач: </b>{{ product.box_peredach }}</p>
                <p><b>Объём двигателя: </b>{{ product.volume_dvigatel }}</p>
                <p><b>Цена: Бесплатно</b></p>
                
            <button>КУПИТЬ</button> 
        {% endif %}     
{% endblock %}

内容的提问来源于stack exchange,提问作者Глеб Гудалин

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 18:50:19