我不知道如何使用Jinja2修改包含的模板中的块。下面是我使用三个文件的示例。
base.html:
<html>{% include "content.html" %}</html>
content.html:
<h1>{% block title %}Title{% endblock title%}</h1>
<div>{% block content_body %}Content Body{% endblock content_body%}</div>
story.html
{% extends "base.html" %}
{% block title %}story.title{% endblock title %}
{% block content_body %}story.description{% endblock content_body %}
在渲染story.html时,我将获得:
<html>
<h1>Title</h1>
<div>Content Body</div>
</html>
如何使用预期值进行渲染?
发布于 2012-02-12 17:25:36
base.html
不会被呈现,因为它不会被任何模板调用。你可以做的是第二层的扩展:
base.html:
<html>{% block html %}{% endblock %}</html>
content.html:
{% extends "base.html" %}
{% block html %}
<h1>{% block title %}Title{% endblock title%}</h1>
<div>{% block content_body %}Content Body{% endblock content_body%}</div>
{% endblock %}
尽管如此,这可能是言过其实了,你可能会发现一个基本模板就足够了(即将base.html
和content.html
组合成一个模板)。
https://stackoverflow.com/questions/9245708
复制相似问题