使用表单视图弹出窗口从行的编辑值返回后,树视图中的计算字段不会更新。 (孩子从弹出窗口保存/返回后,但在保存父记录之前)
举一个例子:向销售订单行添加一个新的计算字段,然后将计算字段添加到销售订单的订单线'选项卡(它本身是销售订单表格中的树视图)。然后调整销售订单表格,以便通过表格(即弹出窗口)完成销售订单行的编辑(而不是编辑树中的行,禁用可编辑='底部')
测试后,似乎计算字段方法正在表单视图中运行,值应该更新。
行(树视图)上的显示应在弹出窗口返回后显示新值,但不显示(仍显示旧值)。 (保存父项后,这会正确更新)
这适用于其他现有字段(例如价格),该字段在弹出窗口中(在保存父窗体之前)编辑该值后在行(树视图)上显示新值。
为什么计算字段显示旧值?
答案 0 :(得分:1)
尝试在计算功能之上添加@api.depends('any_field_name')
,它应该可以解决您的问题。
Odoo有关于此issue中描述的计算字段的错误,它没有计算没有依赖关系的计算字段。
如果我的解决方案适合您,请告诉我。
答案 1 :(得分:1)
看起来因为计算字段不在表单视图(弹出窗口)上,即使计算函数正在执行,从表单返回后的行视图上的值也没有更新(在父保存之前)
将计算字段(invisible = 1)添加到表单视图(弹出窗口)后,行视图在返回时成功更新。
我不知道为什么,但我猜这与缓存或api有关。行值有可能是通过表单视图中的值返回更新(不确定),因此如果有问题的字段不在表单视图上,那么它不会被返回,并且该行仍然保留以前的值。