Jinja - 如何在另一个文件中使用一个文件中设置的变量并设置默认值

问题描述 投票:0回答:1

我是 jinja 新手,需要一些帮助来执行以下操作:

  • main.tpl 包含以下内容:
{%- with PREFIX = "test." %}
{%- set TEST_VARIABLE = "false" %}
{%- include "child1.tpl" %}
{%- endwith %}

如何在 child1.tpl 中使用 TEST_VARIABLE ,以便当它为 false 时,我将这样的属性设置为 false 否则为 true:

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

我收到错误消息,字段名称中出现意外的“{”。请建议。预先感谢。

jinja2 jinjava
1个回答
0
投票

您的

child1.tpl
文件中有两个错误。首先,您使用无效语法来引用
if
语句中的变量。其次,您将字符串 (
"false"
) 与布尔变量 (
false
) 进行比较。这不会做你想做的事。解决这两个问题可以让您:

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

使用此功能和您的

main.tpl
可以正常工作,不会出现错误。将
set TEST_VARIABLE = "false"
更改为
set TEST_VARIABLE = "something else"
会按预期更改最终模板输出。

© www.soinside.com 2019 - 2024. All rights reserved.