Шаблон Jinja2 визуализирует {{variable}} вместо пустой строки, если переменная не установлена - PullRequest
0 голосов
/ 15 января 2019

Мой шаблон содержит 2 {{var1}} и {{var2}} заполнителя. Если я устанавливаю переменную только для var1: value1, то {{var2}} также заменяется пустой строкой. Но я хочу {{var2}} вместо пустой строки

фрагмент кода:

var = {var1:value1}
tmp = Template(f.read(),start="{{",end="}}")
data = tmp.render(var)

1 Ответ

0 голосов
/ 15 января 2019

Вы можете сделать это с резервным назначением при настройке var1 и var2:

var1 = value1 if value1 else "{{var1}}"
var2 = value2 if value2 else "{{var2}}"

var = {"var1":var1, "var2":var2}
tmp = Template(f.read(),start="{{",end="}}")
data = tmp.render(var)

Или вы можете сделать это в шаблоне Django, например:

{% if var1 %}   
    {{ var1 }}
{% else %}
    {% templatetag openvariable %} var1 {% templatetag closevariable %}
{%endif%}

Или, если вы вместо этого используете Jinja2 для шаблонов, вы можете сделать это в своем шаблоне Jinja2, например:

{% if var1 %}   
    {{ var1 }}
{% else %}
    {% raw %}
    {{ var1 }}
    {% endraw %}
{%endif%}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...