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

Odoo中禁用Many2many字段树形视图的弹窗表单

禁用Many2many字段树形视图添加新行时的弹窗表单

要实现直接在树形视图中添加行而不弹出表单,需要从两个关键配置入手,确保树形视图可编辑且被Many2many字段正确引用:

  • 配置可编辑的树形视图
    针对Many2many关联的模型,创建或修改其树形视图,添加editable="bottom"(或editable="top")属性,同时要确保所有必填字段都在树形列中显示(否则行内编辑会因缺值触发报错,可能仍弹出表单)。示例XML代码:

    <record id="关联模型的树形视图ID" model="ir.ui.view">
        <field name="name">关联模型名称.tree</field>
        <field name="model">关联模型的技术名称</field>
        <field name="arch" type="xml">
            <tree editable="bottom">
                <field name="字段1"/>
                <field name="字段2"/>
                <!-- 务必包含所有必填字段 -->
            </tree>
        </field>
    </record>
    

    如果是继承已有视图,用xpath修改属性即可:

    <record id="继承的树形视图ID" model="ir.ui.view">
        <field name="name">关联模型名称.tree.inherit</field>
        <field name="model">关联模型的技术名称</field>
        <field name="inherit_id" ref="原有模块的树形视图ID"/>
        <field name="arch" type="xml">
            <xpath expr="//tree" position="attributes">
                <attribute name="editable">bottom</attribute>
            </xpath>
        </field>
    </record>
    
  • 在表单视图中指定Many2many字段使用该树形视图
    在包含Many2many字段的表单视图中,给字段添加widget="many2many_tree"属性,并通过view_ids指定刚才配置的可编辑树形视图ID,强制加载该视图而非默认配置。示例:

    <field name="你的many2many字段名" widget="many2many_tree" view_ids="刚才配置的树形视图ID"/>
    

完成上述配置后,点击Many2many字段树形视图的添加按钮,就会直接在底部(或顶部)新增可编辑行,不会再弹出表单。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 04:20:58