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

Django模板判断request.GET.query报TemplateSyntaxError如何解决

错误原因

你触发TemplateSyntaxError的核心原因是在{% if %}模板标签内部嵌套了变量输出符{{ }}:Django的模板标签块({% %}包裹的区域)本身就支持直接引用上下文变量,不需要额外用{{ }}包裹变量,重复的符号导致模板解析器无法识别语法。

正确判断方式

根据你的判断需求,可以选择以下两种实现:

场景1:判断query参数存在且值不为空

Django模板的if判断会自动将空字符串、None、空序列等判定为假值,直接引用变量即可:

{% if request.GET.query %}
  <td><a href="/detail/{{item.id}}/{{item.item_hs6}}/{{ request.GET.query }}">detail</a></td>
{% else %}
  <td><a href="/detail/{{item.id}}/{{item.item_hs6}}">detail</a></td>
{% endif %}

场景2:严格判断query参数是否存在(允许值为空字符串)

如果需要区分「参数不存在」和「参数存在但值为空」两种情况,可以用in运算符判断参数名是否在请求参数集合中:

{% if 'query' in request.GET %}
  <!-- 参数存在的对应逻辑,即使值为空也会进入该分支 -->
{% else %}
  <!-- 参数完全不存在的对应逻辑 -->
{% endif %}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 04:45:04