(原创)再论odoo中的计算字段

计算字段严格意义上分为两种:存储型和非存储型。

1)非存储型的计算字段,在其计算方法中,要确保该字段被赋值,也是保证缓存中有这个字段的值,否则会报错。13以前会报CacheMiss的错误,14以后会报ValueError的错误。

  当他依赖的字段修改时,通过modified方法,使它在缓存中无效,在后续访问这个字段计算时会重新计算。

2)存储型计算字段中,则没有必须在计算方法中赋值的限制,当他依赖的字段修改时,通过modified方法,将相关记录和改字段加入到当前环境中的待计算缓冲区中(通过env.add_to_compute方法),

    在后续访问该计算字段时,首先检查待计算缓冲区中是否存在相关的记录,有则重新计算。

 

 

posted @   goyier  阅读(73)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示