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

2024-05-16 01:43:13 发布

您现在位置:Python中文网/ 问答频道 /正文

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

在OdooV8.0中,我尝试使用与v7.0相同的语法,但由于无法将JSON响应返回给web客户端,因此无法使其正常工作:

<function _store_trigger> is not JSON serializable.

然后我读到存储参数已转换为仅布尔值字段(触发器没有dict):Odoo store function: JSON not serializable

所以,我如何设置触发器来将计算字段(和相关字段)的值存储在数据库中?我想主要为它们创建过滤器和组,这样search function就没用了。


Tags: storeinodooapiweb信息jsonparameter
1条回答
网友
1楼 · 发布于 2024-05-16 01:43:13

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

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

您可以指定,other object字段作为触发字段,它必须在会计模块中,如@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')

相关问题 更多 >