This question was asked once,但是它没有回答问题,因此我直接提出了疑问。
我正在尝试在子模板中设置一个变量,以便它更改父模板呈现事物的方式。在这个问题上,我给出一个实际的例子。
我的网站有2种模板。一种显示内容狭窄且全宽的模板。
(我摘除了所有的复杂性,以便向您展示一个简单的示例)
page.html
{% extends "base.html" %}
{% block content %}
<div id="pageContentContainer">
<div class="row">
{% if fullwidth %}
<div class="col-12">fffff
{{super()}}
</div>
{% else %}
<div class="col-9">
{{super()}}
</div>
{% endif %}
</div>
</div>
{% endblock %}
page-fullwidth.html
{% extends "page.html" %}
{% block content %}
{% set fullwidth = true %}
{{super()}}
{% endblock %}
这不起作用。父模板中的变量fullwidth
不是True。
还有其他可行的方法吗?我不想在page.html
中重复page-fullwidth.html
的内容。 (实际上,这个文件更复杂。)
答案 0 :(得分:2)
几乎正确。这就是答案。变量设置器必须在程序段之外
page-fullwidth.html
{% extends "page.html" %}
{% set fullwidth = true %}
{% block content %}
{{super()}}
{% endblock %}