【问题标题】:Consistent Wagtail menus showing parents, children and siblings一致的 Wagtail 菜单显示父母、孩子和兄弟姐妹
【发布时间】:2019-12-03 17:44:32
【问题描述】:

我有一个简单的 Wagtail 网站,由多个 HomePage 类型的页面组成,我想对从 HomePage 模型和 创建的所有页面使用 Wagtails 内置菜单系统>home_page.html 模板。所有页面都选择了在菜单中显示:

使用本指南here,我创建了以下 get_context 方法:

class HomePage(Page, Dreamer, Seo):

    def get_context(self, request):
        context = super(HomePage, self).get_context(request)
        context['menuitems'] = self.get_children().filter(live=True, show_in_menus=True)

...并将以下代码放在我的模板中:

{% for menu in menuitems   %}
    <a class="nav-item nav-link active" href="{{menu.url}}">{{menu.title}}</a>
{% endfor %}

除了根本不显示根主页外,菜单会显示子页面,直到所有链接都消失时我点击一个指向子页面的链接(因为这些页面不再是子页面)。

问题:如何让菜单显示根主页以及子页面,即使我在同级页面、父页面或子页面上?

任何帮助都得到了很大的帮助。

【问题讨论】:

    标签: django wagtail


    【解决方案1】:

    变化:

    context['menuitems'] = self.get_children().filter(live=True, show_in_menus=True)

    到:

    context['menuitems'] = request.site.root_page.get_descendants(inclusive=True).live().in_menu()

    【讨论】:

    • 非常感谢,你是怎么找到这样的东西的?
    • 我已经使用/学习 Wagtail 一年半了,所以我有一个很好的代码库可供参考。另外,我尝试让自己熟悉这些文档。在这种情况下,参考位于:docs.wagtail.io/en/latest/reference/pages/…。关于您的问题的另一件事 - 如果您不需要根页面(它通常只是 &lt;a&gt; 标签中的 /),那么请在此处查看我的答案:stackoverflow.com/a/59145493/5548239。此代码将使您不必自己将导航项放置在上下文中。
    • 鹡鸰 2.9 有一些变化:docs.wagtail.io/en/stable/releases/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多