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

Odoo v13扩展tree_view_ref关联明细操作树视图新增字段不显示问题

排查解决步骤

1. 先修正计算字段的装饰器错误

你当前的计算字段用了错误的装饰器:@api.depends_context是用于读取请求上下文参数(比如当前登录用户ID、上下文传的自定义参数等),而product_uom_qty、qty_done是stock.move.line自身的模型字段,需要用@api.depends装饰器才能正确触发字段计算,错误的装饰器会导致字段值无法正常生成,可能引发视图隐藏异常。
修正后的模型代码如下:

class StockMoveLine(models.Model):
    _inherit = 'stock.move.line'
    
    all_done = fields.Boolean(string="Check", compute="_check_done")
    
    @api.depends('product_uom_qty', 'qty_done')    
    def _check_done(self):
        for move_line in self:            
            if move_line.product_uom_qty == 0 and move_line.qty_done != 0:                
                move_line.all_done = True            
            else:                
                move_line.all_done = False

2. 基础配置校验

  • 确认模块已完成升级:修改模型和视图代码后,必须升级对应自定义模块才能让变更生效,不要仅重启服务不升级模块
  • 重启Odoo服务:确保所有代码变更都被服务加载

3. 视图继承有效性校验

  1. 开启Odoo调试模式,进入「设置-技术-视图」,搜索原视图stock.view_stock_move_line_detailed_operation_tree,查看其继承视图列表中你的自定义继承视图是否存在
  2. 点击原视图的「编辑架构」,检查你的自定义字段<field name="all_done" readonly="1"/>是否已经出现在product_id字段之前的位置:
    • 如果架构中已存在该字段:说明视图继承生效,问题出在权限/缓存层面
    • 如果架构中没有该字段:检查XPath表达式是否正确,确认原视图中确实存在name="product_id"的字段,同时调低自定义继承视图的Sequence值(数值越小优先级越高,建议设为1),避免被其他模块的同视图继承规则覆盖

4. 上下文参数校验

打开库存调拨单表单页,点击调试模式下拉菜单的「查看上下文」,检查上下文参数中tree_view_ref的值是否确实为stock.view_stock_move_line_detailed_operation_tree,避免被其他第三方模块修改了关联的树视图ID,导致你修改的视图不是实际渲染的视图。

5. 权限与缓存排查

  • 字段权限校验:进入「设置-技术-模型」,搜索stock.move.line,找到all_done字段,确认当前操作用户所属的用户组拥有该字段的读权限,Odoo会自动隐藏无读权限的字段且不抛出错误
  • 清理缓存:点击调试模式下拉菜单的「清理本地缓存」,刷新页面后再次查看字段是否显示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:57:02