Tax*_*ool 40 python if-statement jinja2 flask python-2.7
我试图用一个if来确定哪个块应该填满我的{% block content %}.
我有一个base.html默认值{% block content %},这个模板正在扩展base.html.所以我尝试了这个:
{% extends "base.html" %}
{% if condition == True %}
{% block content %}
<div>blah blah blah blah</div>
{% endblock content %}
{% endif %}
Run Code Online (Sandbox Code Playgroud)
而且我期待看到blah blah blah blah条件是否为真并且如果不是真的则看默认块.
但我两次都得到了blah blah blah blah.
然后我尝试了这个:
{% extends "base.html" %}
{% if condition == True %}
{% block content %}
<div>blah blah blah blah</div>
{% endblock content %}
{% else %}
{% block content %}
<div>The Default Thing</div>
{% endblock content %}
{% endif %}
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误:
TemplateAssertionError: block 'content' defined twice
Run Code Online (Sandbox Code Playgroud)
如何在if声明中放置一个块?
Mar*_*ers 58
你不能做出{% block %}有条件的; 一旦你使用标签,该块总是会被填写.
将条件置于块中,并用于super()指示Jinja使用模板中定义的块的原始内容:
{% extends "base.html" %}
{% block content %}
{% if condition %}
<div>blah blah blah blah</div>
{% else %}
{{ super() }}
{% endif %}
{% endblock content %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35926 次 |
| 最近记录: |