gpt4 book ai didi

python - 扩展模板无法​​填充包含文件中的 block

转载 作者:行者123 更新时间:2023-12-03 16:46:04 26 4
gpt4 key购买 nike

我有一个看起来像这样的模板:

{% include "base/top.html" with context %}
{% include "base/nav.html" with context %}
<div id="content">
Stuff
{% block content %}{% endblock %}
</div>
{% include "base/bottom.html" with context %}


base/nav.htmlbase/bottom.html包含静态内容,但是 base/top.html包含 {% block title %}。因此,当我有第二个模板时,它尝试从第一个文件继承,如下所示:

{% extends firstfile.html %}
{% block title %}Imarealpage!{% endblock %}
{% block content %}Lorem ipsum dorem smitshm{% endblock %}


{% block title %}部分未呈现。如何确保它以及包含文件中的任何其他块以及扩展模板中定义的其他块按原样呈现?

最佳答案

您误解了{% include %}的工作原理。 {% include %}标记不是预处理器;在呈现之前,它不会将包含模板的代码直接放入包含模板中。相反,{% include %}触发包含模板的新独立模板呈现(就像您直接从自己的代码中呈现包含模板一样),然后将呈现的结果包含在包含模板的呈现中。

这意味着包含模板与包含模板具有完全独立的继承层次结构。例如,您可以拥有一个基本的component.html模板,其中包含一些块,然后例如foo-component.html{% extends "component.html" %}开头,并填充component.html中的某些块。然后,您可以拥有一个执行layout.html{% include "foo-component.html" %},它将渲染foo-component.html,并继承其component.html,并将结果放入layout.html中的该位置。但是layout.html中的任何块与component.html中的任何块之间的关系都为零-它们是具有独立块结构和继承层次结构的独立呈现器。

关于python - 扩展模板无法​​填充包含文件中的 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15058974/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com