Django模板:在同一个基础中使用多个块标签

时间:2012-10-15 16:04:15

标签: django django-templates

我想在更改所有模板之前确保我已正确理解这一点。我有一个base.html与我的整体布局。这有{%block content%}。我的每个内容页面都扩展为“base.html”,并被块标记包围。这非常有效。我的视图返回渲染的内容页面,并且它很好地放置在布局中。

现在我还在menubar.html中创建了一个菜单栏。除了所选页面/内容的颜色不同之外,每个页面的菜单应该相同。所以它需要知道加载了什么内容。

我的base.html现在还有一个{%block menubar%}

我即将打开所有内容模板,并将以下内容添加到其中:

{% include "menubar.html" %}

然后,在menubar.html中,我将使用块标签包围菜单。那是对的吗?我认为块系统的重点在于,可以通过base.html控制更多内容,而无需更改我的所有模板。

2 个答案:

答案 0 :(得分:2)

我建议将{% include "menubar.html" %}放入base.html。

要突出显示菜单中的当前页面,请使用以下内容:https://stackoverflow.com/a/477719/473285

答案 1 :(得分:2)

如果您的内容模板从base.html延伸,并且{% block menubar %}{% block content %}之外,您不需要修改所有内容模板,只需使用base.html