Шаблон Jinja2 отображает {{variable}} вместо пустой строки, если переменная не установлена

Вы не можете. По умолчанию элементы inline-block имеют ширину усадки :

Ширина усадки для соответствия: min(max(preferred minimum width, available width), preferred width).

blockquote>

Затем,

  • Когда preferred minimum width <= preferred width <= available width, ширина будет preferred width по вашему желанию.
  • Когда available width <= preferred minimum width <= preferred width, ширина будет preferred minimum width по вашему желанию.
  • Когда preferred minimum width <= available width <= preferred width, ширина будет available width, даже если вам это не нравится.

Если вы действительно этого не хотите, я думаю, вы могли бы добавить слушателя событий resize с JS и вручную установить желаемую ширину.

1
задан d3514514 15 January 2019 в 18:16
поделиться

1 ответ

Вы можете сделать это с резервным назначением при настройке 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%}
0
ответ дан Logan Bertram 15 January 2019 в 18:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: