我在项目中使用jinja2作为模板语言。这是简化的模板结构:
base.html文件:
{% block content %}{% endblock %}
{% block sidebar %}{% endblock %}
content.html :
{% extend 'base.html' %}
{% block content %}
<div class="content">
Content
{% block sidebar %}
<div class="sidebar">Sidebar</div>
{% sidebar %}
</div>
{% endblock %}
content.html 的结果呈现:
<div class="content">
Content
<div class="sidebar">Sidebar</div>
</div>
<div class="sidebar">Sidebar</div>
正如您所看到的,sidebar
在渲染content.html
时出现两次。
问题:
有没有办法避免在sidebar
中出现content
,将{% block sidebar %}
留在{% block content %}
内?
答案 0 :(得分:1)
我认为您的content.html模板无效 - 您明确将侧边栏相关内容放在内容块中,因此它总会出现在那里。此外,您的base.html似乎也无效,它看起来应该更像:
{% block content %}{% endblock %}
{% block sidebar %}{% endblock %}