Odoo v15:如何更简洁地编写这段XML视图继承代码?
Odoo v15视图继承代码优化方案
当然可以优化这段代码,你可以利用XPath的多路径匹配特性,通过|(逻辑或)运算符把多个目标节点的表达式合并到同一个<xpath>标签中,一次性给所有匹配节点设置invisible属性,避免重复代码。
优化后的代码如下:
<record id="sale_margin_sale_order_inherit" model="ir.ui.view"> <field name="name">sale.margin.sale.order.inherit</field> <field name="model">sale.order</field> <field name="inherit_id" ref="sale_margin.sale_margin_sale_order"/> <field name="arch" type="xml"> <xpath expr="//field[@name='margin'] | //span[hasclass('oe_inline')] | //label[@for='margin']" position="attributes"> <attribute name="invisible">1</attribute> </xpath> </field> </record>
代码说明
XPath表达式中的|运算符用于同时匹配多个路径:
//field[@name='margin']:匹配name属性为margin的字段节点//span[hasclass('oe_inline')]:匹配带有oe_inline样式类的span节点//label[@for='margin']:匹配for属性指向margin的标签节点
这个写法和你原来的代码功能完全一致,但结构更简洁,维护起来也更方便。
内容的提问来源于stack exchange,提问作者odoo newbie
相关产品推荐
相关产品推荐

