0

我在我的项目中使用jinja2作为模板语言。这是简化的模板结构:

base.html

{% block content %}{% endblock %}
{% block sidebar %}{% endblock %}

内容.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在 render 出现了两次content.html

问题:

有没有办法避免出现sidebar在里面content,离开{% block sidebar %}里面{% block content %}

4

1 回答 1

1

我认为您的 content.html 模板无效-您清楚地将侧边栏相关内容定位在内容块内,因此它总是会出现在那里。此外,您的 base.html 似乎也无效,它应该看起来更像:

{% block content %}{% endblock %}
{% block sidebar %}{% endblock %}
于 2013-01-23T11:33:29.083 回答