Odoo 15修改stock.quant树视图按钮属性的代码无效问题
解决Odoo 15中stock.quant可编辑树视图按钮修改不生效的问题
排查与修复步骤
确认视图继承目标正确
你的XML视图必须继承stock.quant的官方可编辑树视图(ID为stock.view_stock_quant_tree_editable),正确的视图结构示例:<record id="custom_stock_quant_tree_editable" model="ir.ui.view"> <field name="name">stock.quant.tree.editable.custom</field> <field name="model">stock.quant</field> <field name="inherit_id" ref="stock.view_stock_quant_tree_editable"/> <field name="arch" type="xml"> <xpath expr="//button[@name='action_apply_inventory']" position="attributes"> <attribute name="attrs">{'invisible': ['|', ('inventory_quantity_set', '=', False), ('is_approved', '=', False)]}</attribute> <attribute name="groups">base.group_system,pitik_base_farm.group_finance_head</attribute> <attribute name="string">Submit</attribute> </xpath> </field> </record>未指定正确的
inherit_id,XPath会找不到目标按钮,导致修改无效。精准定位XPath路径
原表达式//button[@name='action_apply_inventory']可能匹配到其他视图的同名按钮,建议限定在树视图范围内查找:<xpath expr="//tree/button[@name='action_apply_inventory']" position="attributes"> <!-- 属性修改代码 --> </xpath>开启开发者模式,查看官方可编辑树视图的原始XML结构,确认按钮层级,保证XPath路径完全匹配。
验证字段与权限配置
- 检查
is_approved字段是否存在于stock.quant模型中,且已添加到视图字段列表(即使设为不可见,也需声明才能让attrs判断生效)。 - 确认
pitik_base_farm.group_finance_head用户组存在,测试账号需属于该组或base.group_system,否则按钮会因权限隐藏。
- 检查
强制刷新缓存与升级模块
修改XML后,必须升级对应自定义模块,再用Ctrl+Shift+R强制刷新浏览器缓存。也可在开发者模式下,进入「设置 > 技术 > 用户界面 > 视图」找到修改的视图,点击刷新后重新打开stock.quant页面。排查模块冲突
若有其他自定义模块也在修改该按钮,可能会覆盖你的设置。暂时禁用其他相关模块,测试代码是否生效,逐步排查冲突来源。
内容的提问来源于stack exchange,提问作者adit warman
相关产品推荐
相关产品推荐

