6

我正在基于 Wagtail Snippets 构建自定义 AdminModel,并在 AdminPanel 中为我的模型提供了一个自定义菜单。如何在不禁用的情况下从 AdminPanel 隐藏/删除片段选择?谢谢你。

在此处输入图像描述

4

2 回答 2

7

将以下钩子放入 Wagtail CMS 应用程序的 wagtail_hooks.py 文件中:

from wagtail.wagtailcore import hooks

@hooks.register('construct_main_menu')
def hide_snippets_menu_item(request, menu_items):
  menu_items[:] = [item for item in menu_items if item.name != 'snippets']

你基本上完成了!您可以使用这种方法从管理菜单中隐藏任何项目。

我最近在我的博客上描述了它:http: //timonweb.com/posts/how-to-remove-snippets-menu-item-from-wagtail-cms-admin-menu/

于 2017-02-16T13:59:55.887 回答
6

由于item.nameinmenu_items可以为空白,因此更好的解决方案是:

from wagtail.snippets.wagtail_hooks import SnippetsMenuItem

@hooks.register('construct_main_menu')
def hide_snippets_menu_item(request, menu_items):
    menu_items[:] = [item for item in menu_items if not isinstance(item, SnippetsMenuItem)]
于 2020-06-25T09:34:35.900 回答