如何将内容从 django 中的页面传递到侧边栏?
Posted
技术标签:
【中文标题】如何将内容从 django 中的页面传递到侧边栏?【英文标题】:How do I pass content to a side bar from a page in django? 【发布时间】:2015-10-24 13:38:01 【问题描述】:我正在用 Django 构建一个网站,我希望拥有主导航栏和一个侧面以获得更详细的信息。
我很乐意对主导航栏进行硬编码,但我希望侧边栏能够反映页面中的各个部分(每个部分都有锚链接)。
我见过提到block.super
,但这个例子有点抽象,让我理解如何将它应用到我的情况。
这是我的sidebar:
<div id="sidebar-wrapper">
<ul class="sidebar-nav">
<li class="sidebar-brand">
<a href="#">
Website Title.
</a>
</li>
%for section in page%
<li>
<a href="#section.name">section.name</a>
</li>
</ul>
</div>
我需要在我的 base.html 中扩展它吗?或者我是否扩展我的页面模板?
这是我当前 base.html 的正文:
<body>
% include 'navbar.html' %
</div>
<div class="content container">
<div class="row">
<div class="col-md-8">
% block content %
% endblock %
</div>
</div>
</div>
</body>
对于如何在我的应用中实现这一点,我有点迷茫。我应该如何将子页面的内容传递到导航栏?
【问题讨论】:
当我很好地理解了您的问题时,无需在模板中包含侧边栏。我认为您的模板中只需要两个 forloops。一个 forloop 用于您的链接,一个用于您的部分。顺便说一句:您的代码中缺少 endfor 标记。 @het.oosten 您还需要知道什么?我试图保持干燥,否则我将重复代码。 我认为在这种情况下做两个 forloop 是可以的,因为它们有不同的目的。 【参考方案1】:您应该在 base.html 中为导航栏编写不同的内容块,并在以下模板文件中覆盖该块。
【讨论】:
我将如何“覆盖”该块? 这里的人 anton-pirker.at/… 用例如可能对你有帮助的例子更好地解释了它。以上是关于如何将内容从 django 中的页面传递到侧边栏?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 CBV 在我的所有 Django 模板中创建侧边栏?
如何从侧边栏链接导航到同一页面上的新 bootstrap 4 选项卡?