如何在Odoo自定义模块中展示Event模块的树形及表单视图?
解决Odoo自定义模块集成Event模块菜单的问题
核心原因分析
你看到的menu_event_event是Event模块的父菜单节点,仅用于展开子菜单,本身不需要关联action——真正对应视图的action在它的子菜单或者单独的ir.actions.act_window记录里。
具体实现方案
方案1:直接在自定义菜单中添加Event视图入口
- 确认Event模块中对应
event.event模型的列表视图action ID:Odoo16中该action的ID为action_event_event,定义在Event模块的event/views/event_views.xml中,结构如下:
<record id="action_event_event" model="ir.actions.act_window"> <field name="Events"/> <field name="res_model">event.event</field> <field name="view_mode">kanban,tree,form,calendar,graph</field> <field name="domain">[]</field> </record>
- 在自定义模块的菜单XML文件中,创建关联该action的菜单项,指定自定义模块的主菜单为父节点:
<!-- 替换my_module.main_menu为你自定义模块的主菜单ID --> <menuitem name="我的活动" id="my_module.custom_event_menu" parent="my_module.main_menu" action="event.action_event_event" sequence="10" groups="event.group_event_registration_desk"/>
方案2:将Event模块的完整菜单树迁移到自定义菜单下
如果需要把Event模块的所有菜单(包括子菜单)都放到自定义模块的菜单结构里,可通过继承修改原Event主菜单的父节点:
<menuitem id="event.event_main_menu" inherit_id="event.event_main_menu" parent="my_module.main_menu"/>
这样原Event模块的整个菜单树会直接挂载到你的自定义主菜单下,无需单独配置每个子菜单。
注意事项
- 确保自定义模块的
__manifest__.py中添加对event模块的依赖:
'depends': ['base', 'event'],
- 权限控制:保留
groups="event.group_event_registration_desk"可确保只有具备活动管理权限的用户能看到该菜单,可根据需求调整或移除。
内容的提问来源于stack exchange,提问作者Temp
相关产品推荐
相关产品推荐

