django - 一致的 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 之外,菜单显示子页面,直到当所有链接消失时,我点击一个指向子页面的链接(因为这些页面不再是子页面)。
问题:即使我在兄弟页面、父页面或子页面上,如何让菜单显示根主页以及子页面?
任何帮助都得到了很大的帮助。
解决方案
改变:
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()
推荐阅读
- angular - 组件间共享数据服务
- python - 在 Windows 上 pip 的 --user 选项有什么用?
- sql-server - 从 .backpack 导入现有数据库?
- python - 如何使用 Flow 执行自定义代码?
- python - 我怎样才能通过它的端口运行一个 portia 蜘蛛?
- java - 我也可以将@Bean 注解应用于函数吗?
- angular - 每次用户单击按钮时创建整个动态表单添加到 Angular
- html - 如何在html表中的每一行的末尾给出符号
- laravel - 当请求在laravel中并行时如何使用队列
- python - Pandas 系列 apply lambda: NoneType found,但系列中只有 str 和 list