繁体   English   中英

如何在Odoo 8中为计算字段设置存储触发器?

[英]How to set store trigger for computed fields in Odoo 8?

我开始使用Odoo v8.0的新API,但在这样的计算字段(适用于v7.0和v6.1)中找不到关于存储触发器的有用信息: Odoo v6中的存储参数

在Odoo v8.0中,我尝试使用与v7.0相同的语法,但是由于JSON响应无法返回到Web客户端,所以无法使其正常工作:

<function _store_trigger> is not JSON serializable.

然后,我读取到该存储参数已转换为仅布尔值字段(触发器无字典): Odoo存储函数:JSON无法序列化

那么,如何设置触发器以将值存储在数据库中以计算(及相关)字段呢? 我想主要为它们创建过滤器和组,因此search function将无用。

在V8中,您可以将任何字段用作计算字段。 在V8中,store是一个布尔型参数,默认情况下为false

如果显式设置为“ store = True”,则在@ api.depends('name')中提到的从属字段将充当触发字段。

您可以将另一个对象字段指定为触发字段,该字段必须在计费模块中,例如@ api.depends('other_object.field_name')

upper = fields.Char(compute='_compute_upper', store=True)

@api.depends('name')
def _compute_upper(self):
    for rec in self:
        self.upper = self.name.upper() if self.name else False

如果为“ false”,则该值不存储在数据库中,并且每次都会计算。

upper = fields.Char(compute='_compute_upper')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM