安装报表子模块后,如何设置餐厅ERP模块的默认页面为Report Dashboard
修改ERP模块默认页面的方法(以餐厅ERP+报表子模块为例)
核心逻辑:模块的默认页面一般由菜单的默认动作或模块入口配置控制,安装子模块后直接覆写这个配置就能切换。
1. 定位主模块的默认入口
先找到餐厅ERP主模块里设置默认页面的地方:
- 大多在主模块
views目录下的菜单XML文件(比如restaurant_menu.xml)里,找模块根菜单的action属性,类似这样:
<menuitem name="餐厅ERP" id="menu_restaurant_root" action="action_restaurant_overview"/>
这里的action_restaurant_overview就是指向默认的Restaurant Overview页面的动作ID。
2. 在报表子模块中覆写配置
在报表子模块的XML配置文件里,添加对主模块根菜单的覆写,把action换成报表仪表盘的动作ID:
<menuitem name="餐厅ERP" id="menu_restaurant_root" action="action_report_dashboard" inherit_id="restaurant_erp.menu_restaurant_root" />
- 关键:
inherit_id要填主模块根菜单的完整ID(格式是主模块标识.菜单ID),action换成报表子模块里定义的Report Dashboard动作ID(比如action_report_dashboard)。 - 别忘了给报表子模块加主模块依赖,在子模块的
__manifest__.py(老版本是__openerp__.py)里加:
'depends': ['restaurant_erp'],
3. 验证配置生效
- 安装或升级报表子模块后,系统会自动加载XML覆写,刷新菜单缓存。
- 要是报表仪表盘的动作还没定义,得先在子模块里写好:
<record id="action_report_dashboard" model="ir.actions.act_window"> <field name="name">Report Dashboard</field> <field name="res_model">restaurant.report.dashboard</field> <field name="view_mode">dashboard</field> <field name="target">current</field> </record>
非Odoo架构的通用思路
如果是其他自定义ERP框架:
- 找模块入口的路由配置文件(比如
routes.py或前端的config.js),直接修改默认路由指向报表仪表盘的路径。 - 要是系统有后台配置界面,直接在模块设置里把主模块的默认页面切换成Report Dashboard;没有的话,直接更新数据库里模块配置表的默认页面ID。
内容的提问来源于stack exchange,提问作者Denny
相关产品推荐
相关产品推荐

