Wagtail - 如何从设置菜单中删除子菜单项

Wagtail - How To Remove Sub-Menu Items From Settings Menu

Wagtail 默认包含一个 "settings" 菜单项,以及一些默认设置项,例如 "sites" 和 "redirects"。

我知道您可以使用 register_setting 装饰器注册新设置,并且可以使用各种挂钩来自定义顶级菜单项,但不能自定义子菜单项。如何删除(或隐藏显示)默认设置项?

创建一个 Wagtail 组(“设置”菜单下的“组”)。为组分配对象权限时,确保未选择站点设置。然后将您不希望看到“站点设置”菜单的用户分配给该组,并且不会为他们显示。

这个website中已经解释了解决方案 如果我们想从设置菜单项中删除用户

from wagtail.core import hooks

@hooks.register('construct_settings_menu')
def hide_user_menu_item(request, menu_items):
    menu_items[:] = [item for item in menu_items if item.name != 'user']

对于主菜单,如果我们想从主菜单项中删除图片

from wagtail.core import hooks

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