【发布时间】:2020-03-28 15:05:38
【问题描述】:
我一直在尝试设计一个带有主模板的多节报告文档:
<html>
<body>
{% include "SectionA.html" %}
{% include "SectionB.html" %}
...
</body>
</html>
其中每个包含的SectionX.html 文件都扩展了base.html 文件。
我想让base.html 设置一系列变量(用于控制流),这些变量可以在SectionX.html 文件中被覆盖。我尝试使用 setVariables 块来完成此操作,但这不起作用。
我的base.html 文件类似于:
{% block setVariables %}
{% set doFoo = False %}
{% set doBar = False %}
{% set bazValues = [] %}
{% endblock setVariables %}
{% if doFoo %}
...
然后在每个扩展文件中覆盖该部分:
{% block setVariables %}
{% set doFoo = sectionFoo %}
{% set doBar = sectionBar %}
{% set bazValues = sectionBaz %}
{% endblock setVariables %}
问题是,doFoo 被设置在两个完全独立的范围内,我还没有找到一种方法来访问另一个范围。我不确定是否有使用我当前策略的解决方法,但如果有任何可能有助于创建这个模块化、多部分的报告,我将不胜感激。
【问题讨论】:
标签: python html inheritance scope jinja2