odoo 用 compute 计算 2 个字段
odoo calculate 2 fields with compute
我有这 2 个字段,我想使用 compute
来计算它们
_columns = {
'feb_target':fields.float('Februari Target'),
'apr_target':fields.float('April Target'),
'ytd':fields.float('YTD', compute='_computeytd'),
}
@api.depends('feb_target', 'apr_target')
def _computeytd(self):
for record in self:
record.ytd = record.feb_target + record.apr_target
但是结果是0。
我该怎么办?谢谢
哇,这让我回到了起点。
_columns
中定义的旧 API 字段应使用 fields.function
作为计算字段。但我更喜欢尽可能使用“新”API。而且你的代码看起来完全是你自己完成的,所以这是可能的。
from odoo import api, fields, models
class YourClass(models.Model):
feb_target = fields.Float('Februari Target')
apr_target = fields.Float('April Target')
ytd = fields.Float('YTD', compute='_compute_ytd')
@api.multi
@api.depends('feb_target', 'apr_target')
def _compute_ytd(self):
for record in self:
record.ytd = record.feb_target + record.apr_target
我有这 2 个字段,我想使用 compute
来计算它们_columns = {
'feb_target':fields.float('Februari Target'),
'apr_target':fields.float('April Target'),
'ytd':fields.float('YTD', compute='_computeytd'),
}
@api.depends('feb_target', 'apr_target')
def _computeytd(self):
for record in self:
record.ytd = record.feb_target + record.apr_target
但是结果是0。
我该怎么办?谢谢
哇,这让我回到了起点。
_columns
中定义的旧 API 字段应使用 fields.function
作为计算字段。但我更喜欢尽可能使用“新”API。而且你的代码看起来完全是你自己完成的,所以这是可能的。
from odoo import api, fields, models
class YourClass(models.Model):
feb_target = fields.Float('Februari Target')
apr_target = fields.Float('April Target')
ytd = fields.Float('YTD', compute='_compute_ytd')
@api.multi
@api.depends('feb_target', 'apr_target')
def _compute_ytd(self):
for record in self:
record.ytd = record.feb_target + record.apr_target