首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从包含的子模板中填充父模板块

从包含的子模板中填充父模板块
EN

Stack Overflow用户
提问于 2014-03-09 13:04:49
回答 1查看 1.7K关注 0票数 0

我刚开始使用jinja2模板库。我不知道如何从包含的子模板中填充父模板块中的内容。例如,我有一个父模板-

t-1:

代码语言:javascript
复制
<div id="includedTemplateName>
    {% block includedTemplateName %}{% endblock %}
</div>

<div id="content">
    {% include 't-2.htm' %}
</div>

和子模板

t-2:

代码语言:javascript
复制
<div>
conten
</div>
{% block includedTemplateName %}t-2{% endblock %}

我希望id includedTemplateName的div中的值为“t-2”,如t-2中所定义的。如何使用jinja2实现这一目标?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-09 13:16:41

您将include语句与模板继承混淆在一起。include语句对于包含一个模板并将该文件的呈现内容返回到当前命名空间(来自Jinja2文档)非常有用。您的“子”模板在包含它时已经呈现,因此它无法更改父模板中的值。

您需要使用模板继承

t1.html

代码语言:javascript
复制
<div id="includedTemplateName">
    {% block includedTemplateName %}{% endblock %}
</div>

<div id="content">
    {% block content %}{% endblock %}
</div>

t2.html

代码语言:javascript
复制
{% extends "t1.html" %}
{% block includedTemplateName %}t-2{% endblock %}
{% block content %}content{% endblock %}

来自Jinja2文档

{% extends %}标记是这里的关键。它告诉模板引擎,这个模板“扩展”了另一个模板。当模板系统评估此模板时,首先它会定位父模板。扩展标记应该是模板中的第一个标记。在打印之前的每件事都是正常的,可能会引起混乱。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22282521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档