首页 > 解决方案 > 一致的 Wagtail 菜单显示父母、孩子和兄弟姐妹

问题描述

我有一个简单的 Wagtail 站点,由几个HomePage类型的页面组成,我想对从HomePage模型和home_page.html模板 创建的所有页面使用 Wagtails 内置菜单系统。所有页面都有Show in menus:选中。

在这里使用本指南,我创建了以下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 %}

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

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

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

标签: djangowagtail

解决方案


改变:

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()


推荐阅读