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