我基本上想在我的基本模板中做这样的事情:
{% if the block 'headline' is not empty %}
<div class="something"><h1>{% block headline %}{% end block %}</h1></div>
{% endif %}
在jinja2中,看起来块不是变量,你无法获取它们的内容或测试它们的值,或者除了输出它们之外的任何其他内容。
这似乎很容易实现这一点,但我无法想出办法。我是否必须使用宏而不是块?
答案 0 :(得分:4)
您应该能够使用self.blockname
语法检查块的内容。
{% if self.headline() is not empty %}
{# Write out Headline HTML wrapper here #}
{% endif %}
如果要多次打印块,可以使用特殊的自变量并使用该名称调用块:
<title>{% block title %}{% endblock %}</title>
<h1>{{ self.title() }}</h1>
{% block body %}{% endblock %}