Как я могу обернуть блок в jinja2 - PullRequest
2 голосов
/ 19 мая 2011

Я в основном хочу сделать что-то подобное в моем базовом шаблоне:

{% if the block 'headline' is not empty %}
<div class="something"><h1>{% block headline %}{% end block %}</h1></div>
{% endif %}

В jinja2 кажется, что блоки не являются переменными, и вы не можете получить их содержимое, проверить их значения или что-то ещено выведите их.

Кажется, что это было бы просто, но я не могу найти способ.Нужно ли использовать макросы вместо блоков?

1 Ответ

4 голосов
/ 19 мая 2011

Вы должны быть в состоянии проверить содержимое блока, используя синтаксис self.blockname.

{% if self.headline() is not empty %}
{# Write out Headline HTML wrapper here #}
{% endif %}

Цитировать документацию :

Если вы хотите напечатать блок несколько раз, вы можете использовать специальную переменную self и вызвать блок с таким именем:

<title>{% block title %}{% endblock %}</title>
<h1>{{ self.title() }}</h1>
{% block body %}{% endblock %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...