我有一个基本模板,其中包含用于默认<head>
内容的块。在头块中,有一个用于<title>
的块。
例如,在基本文件中,我将拥有:
<head>
{% block head %}
{% block title %}<title>An App</title>{% endblock title %}
<script src="somescript.js"></script>
{% endblock head %}
</head>
在子模板中,我希望包含从基块开始的头块中的所有内容(通过调用{{ super()) }}
),并包含一些附加内容,同时替换超级调用中的标题块。
有没有一种方法可以做到这一点,而不只是在头部内容(不包括标题)的其他部分加上一个块,然后全部替换掉?
不要调用
super
。在子模板中,可以执行以下操作:Jinja将父级中的所有块替换为子级中定义的块,如果不提供新定义,它将使用父级中的定义。因此它将呈现为:
如果希望在父块中使用块的默认值,可以调用
super
:这表现为:
如果要添加更多脚本,只需在基本模板中创建占位符块:
并将其用于:
相关问题 更多 >
编程相关推荐