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

Jinja模板跨文件使用变量及设置默认值问题求助

解决Jinja模板变量引用语法错误及布尔值判断问题

错误原因

你在child1.tpl的if条件中错误地给变量加上了大括号{TEST_VARIABLE},Jinja模板里直接写变量名即可,不需要额外包裹大括号,这是导致unexpected '{' in field name报错的直接原因。

另外需要注意:你的main.tpl中TEST_VARIABLE被设置为字符串"false",而非布尔值false,如果直接和布尔值false比较,结果会不符合预期。

正确实现方式

方式1:保持变量为字符串类型的判断

如果要沿用main.tpl中字符串类型的TEST_VARIABLE,child1.tpl的代码应该写成:

{%- if TEST_VARIABLE == "false" %}
PROPERTY1=false
{%- else %}
PROPERTY1=true
{%- endif %}

方式2:改为布尔值变量的判断

如果希望TEST_VARIABLE是布尔类型,先修改main.tpl中的变量定义(去掉引号):

{%- with PREFIX = "test." %}
{%- set TEST_VARIABLE = false %}
{%- include "child1.tpl" %}
{%- endwith %}

对应的child1.tpl代码:

{%- if not TEST_VARIABLE %}
PROPERTY1=false
{%- else %}
PROPERTY1=true
{%- endif %}

或者可以用更简洁的写法:

PROPERTY1={{ TEST_VARIABLE | lower }}

(利用Jinja的过滤器,直接将布尔值转为小写字符串)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 17:08:11