Odoo继承sale.order视图设置invisible属性不生效求助
Odoo sale.order继承视图invisible属性不生效排查方案
直接按以下优先级排查修改即可:
- 删除mode参数
你当前视图配置的<field name="mode">primary</field>是定义独立主视图的参数,用于完全新建视图而非修改原有继承视图,删除该行即可让继承修改逻辑生效。 - 提升视图优先级
在你的继承视图record标签内新增优先级字段,数值越小优先级越高,确保你的修改不会被其他同模型视图覆盖:
<field name="priority" eval="1"/>
- 修正XPath路径
改用更精准的路径匹配原生视图的字段,避免定位失效:
<xpath expr="//tree/field[@name='name']" position="attributes"> <attribute name="invisible">1</attribute> </xpath>
- 绑定自定义视图到窗口动作
如果你的需求是做独立的自定义报表视图,而非修改原有销售订单的默认树视图,需要给自定义视图设置唯一id,再将窗口动作绑定到该视图:
<!-- 给自定义视图加id --> <record id="view_sale_order_custom_report_tree" model="ir.ui.view"> <field name="name">sale.order.inherited</field> <field name="model">sale.order</field> <field name="inherit_id" ref="sale.view_order_tree" /> <field name="priority" eval="1"/> <field name="arch" type="xml"> <xpath expr="//tree/field[@name='name']" position="attributes"> <attribute name="invisible">1</attribute> </xpath> </field> </record> <!-- 窗口动作绑定自定义视图 --> <record id="action_sale_custom_report" model="ir.actions.act_window"> <field name="name">Custom Sale Report</field> <field name="res_model">sale.order</field> <field name="view_mode">tree,form</field> <field name="view_id" ref="你的模块名.view_sale_order_custom_report_tree"/> </record>
- 清除缓存生效
修改完成后升级对应模块,开启Odoo开发者模式后点击右上角bug图标选择「清除缓存」,再刷新页面验证效果。
内容的提问来源于stack exchange,提问作者謝昀忻
相关产品推荐
相关产品推荐

