You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo 17中如何定位并修改齿轮图标下拉菜单(继承视图场景)

定位并修改Odoo 17中freight.shipment表单的齿轮下拉菜单

一、通过开发者模式追踪继承视图

  • 开启开发者模式后,打开freight.shipment表单视图,点击右上角「编辑视图: 表单」,查看顶部的「继承自」列表,逐个检查这些父视图的XML代码,重点找button_box区域内带widget="dropdown"属性的按钮(这就是齿轮下拉菜单的定义)。
  • 鼠标悬停在齿轮按钮上,右键「检查」元素,找到data-action-id或data-menu属性值,复制该ID后,在开发者菜单的「动作」→「窗口动作」中搜索,找到对应动作的定义,再反向查找哪个视图继承将这个动作添加到了下拉菜单中。

二、数据库直接查询定位视图

用pgAdmin或psql连接Odoo数据库,执行以下SQL查询快速定位相关视图:

  1. 查找包含button_box和下拉菜单的视图:
SELECT res_id, name, module FROM ir_ui_view 
WHERE arch LIKE '%button_box%dropdown%' AND model = 'freight.shipment';

查询结果中的module列会显示视图所属模块,直接去对应模块的XML文件中查找即可。

  1. 若下拉菜单项是动作关联的,可通过动作ID查询关联视图:
SELECT a.name, v.name, v.module 
FROM ir_act_window a 
JOIN ir_ui_view v ON a.view_id = v.id 
WHERE res_model = 'freight.shipment' AND a.id = '你从元素检查中得到的动作ID';

三、VS Code全局搜索技巧

  • 不要仅搜索界面显示的文字,转而搜索Odoo下拉菜单的典型代码结构:
    • 搜索<button name="..." type="action" widget="dropdown"定位齿轮菜单本身
    • 搜索<menuitem action="..."定位下拉菜单中的菜单项
    • 搜索<field name="inherit_id" ref="%freight.shipment.form%"定位所有继承该表单的视图
  • 检查自定义应用__manifest__.py中的depends字段,查看依赖模块,这些模块很可能包含继承该表单的代码。

四、修改菜单的示例代码

找到目标继承视图后,通过XML继承修改:

<record id="custom_freight_shipment_form_menu_fix" model="ir.ui.view">
    <field name="name">freight.shipment.form.menu.fix</field>
    <field name="model">freight.shipment</field>
    <field name="inherit_id" ref="原视图的外部ID"/> <!-- 替换为实际视图ID -->
    <field name="arch" type="xml">
        <!-- 修改齿轮菜单的显示文字 -->
        <xpath expr="//div[@name='button_box']/button[@widget='dropdown']" position="attributes">
            <attribute name="string">正确的菜单名称</attribute>
        </xpath>

        <!-- 移除不需要的菜单项 -->
        <xpath expr="//div[@name='button_box']/button[@widget='dropdown']/menuitem[@action='要移除的动作ID']" position="replace"/>

        <!-- 添加新的菜单项 -->
        <xpath expr="//div[@name='button_box']/button[@widget='dropdown']" position="inside">
            <menuitem action="新动作的外部ID" string="新菜单项名称"/>
        </xpath>
    </field>
</record>

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 05:32:41