You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何在Odoo 10中通过继承修改父级菜单项名称

在Odoo 10中通过继承方式修改模块显示名称

1. 先创建一个自定义模块(核心前提)

你得先搭一个自己的小模块来承载这个修改——毕竟不能直接改原模块代码,不然后续Odoo升级会把你的改动覆盖掉。模块的基础结构大概是这样:

my_asset_rename/
├── __init__.py
├── __manifest__.py
└── views/
    └── menu_inherit.xml
  • __init__.py 可以是空文件,或者简单写from . import views(可选)
  • __manifest__.py 要声明依赖原Maintenance模块,示例代码如下:
{
    'name': 'Rename Maintenance to Asset',
    'version': '1.0',
    'author': 'Your Name',
    'depends': ['maintenance'],  # 必须依赖原维护模块才能继承它的内容
    'data': [
        'views/menu_inherit.xml',  # 指定要加载的继承视图文件
    ],
    'installable': True,
    'auto_install': False,
}

2. 编写继承视图修改菜单名称

views/menu_inherit.xml里写继承代码,定位到原模块的根菜单,直接修改它的显示名称就行。这里给你两种写法:

写法一:直接继承菜单记录(简洁直观)

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <record id="maintenance.menu_maintenance_root_inherit" model="ir.ui.menu">
        <field name="name">Asset</field>
        <field name="inherit_id" ref="maintenance.menu_maintenance_root"/>
        <!-- 直接覆盖name字段,把原来的Maintenance替换成Asset -->
    </record>
</odoo>

写法二:用XPath定位修改(更灵活,适合复杂场景)

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <template id="menu_maintenance_root_inherit" inherit_id="maintenance.menu_maintenance_root">
        <xpath expr="//field[@name='name']" position="replace">
            <field name="name">Asset</field>
        </xpath>
    </template>
</odoo>

3. 安装自定义模块生效

把这个模块放到Odoo的addons目录下,重启Odoo服务,然后在后台应用列表里找到你创建的Rename Maintenance to Asset模块,点击安装。安装完成后刷新页面,就能看到原来的「Maintenance」已经变成「Asset」啦!


内容的提问来源于stack exchange,提问作者law rence

火山引擎 最新活动