如何隐藏Wagtail管理后台的Page标签?非Pages场景下冗余应用排查
问题解答
一、隐藏Wagtail后台的Pages标签
可以通过Wagtail的construct_main_menu钩子移除Pages菜单项,步骤如下:
- 在项目任意已注册的app目录下创建
wagtail_hooks.py文件 - 添加以下代码:
from wagtail import hooks @hooks.register('construct_main_menu') def hide_pages_menu(request, menu_items): # 过滤掉对应Pages标签的'explore'菜单项 menu_items[:] = [item for item in menu_items if item.name != 'explore']
重启项目后,Wagtail后台的Pages标签就会被隐藏。
二、不使用Pages功能时可移除的Wagtail应用
针对你列出的应用,以下这些完全依赖Page功能,可从INSTALLED_APPS中移除:
wagtail.contrib.forms:专为表单类型Page设计,无Pages场景下无用wagtail.embeds:用于在Page内容中嵌入第三方媒体,无需Pages则可移除wagtail.sites:核心是绑定Page作为站点首页,不用Pages则失去作用wagtail.search:默认主要针对Page内容提供搜索能力,用Django原生模型且无需Wagtail搜索时可移除
另外,以下属于可选移除项,取决于你的实际需求:
wagtail.documents/wagtail.images:如果仅用Django原生文件处理,不需要Wagtail的媒体管理功能,可移除wagtail.snippets:用于管理小型可复用内容片段,可独立于Page使用;不需要则可移除wagtail.users:如果仅用Django原生用户管理,不需要通过Wagtail后台管理用户,可移除
必须保留的核心应用:wagtail和wagtail.admin,这两个是Wagtail后台运行的基础依赖。
内容的提问来源于stack exchange,提问作者redtomato
相关产品推荐
相关产品推荐

