【问题标题】:How do I pass content to a side bar from a page in django?如何将内容从 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 是可以的,因为它们有不同的目的。

标签: html django twitter-bootstrap django-templates


【解决方案1】:

您应该在 base.html 中为导航栏编写不同的内容块,并在以下模板文件中覆盖该块。

【讨论】:

  • 我将如何“覆盖”该块?
  • 这里的人 anton-pirker.at/… 用例如可能对你有帮助的例子更好地解释了它。
猜你喜欢
  • 1970-01-01
  • 2021-05-29
  • 1970-01-01
  • 2018-07-17
  • 2021-08-31
  • 1970-01-01
  • 1970-01-01
  • 2011-04-14
  • 2013-08-09
相关资源
最近更新 更多