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
相关产品推荐
相关产品推荐

