使用Wagtail CMS Snippets但在管理面板中隐藏

Stu*_*ter 2 django django-models django-admin wagtail wagtail-snippet

我正在构建基于Wagtail Snippets的自定义AdminModel,并在我的模型的AdminPanel中有一个自定义菜单.如何在不禁用的情况下隐藏/删除AdminPanel中的代码段选择?谢谢.

在此输入图像描述

div*_*u4i 8

由于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)]
Run Code Online (Sandbox Code Playgroud)

  • 我在使用接受的答案时遇到了问题,因为我们使用多个名称,具体取决于用户的语言。这个解决方案实际上更好 (2认同)

小智 6

将以下挂钩放入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']
Run Code Online (Sandbox Code Playgroud)

你基本上完成了!您可以使用此方法隐藏管理菜单中的任何项目.

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