在Odoo v8中没有触发计算字段

时间:2015-03-15 16:02:22

标签: odoo odoo-8

我正在尝试计算字段的值并将值存储在数据库中。如果我删除store=True一切似乎都很好,但是当我添加参数而不是显示函数的结果时,我只是在所有字段中得到0。

我还意识到当我在树视图或表单视图上时,我的计算字段功能没有被调用。

我的代码如下所示:

@api.one
    def _compute_fats(self):

        for record in self:
            fats = 0
            fats_id = record.name.id
            get_detail = self.env['trackfood.foods'].search([['id', '=', fats_id],])
            for record2 in get_detail:
                fats = record2.fats

        self.fats = fats

fats = fields.Float(compute='_compute_fats', string="Fat" , store=True)

我的目标是获取每个产品的fats金额并将其存储在跟踪表中,以便能够绘制图表。

任何提示将不胜感激, 感谢

3 个答案:

答案 0 :(得分:1)

尝试以下,

@api.multi
def _compute_fats(self):
    for record in self:
        fats = 0
        fats_id = record.name.id
        get_detail = self.env['trackfood.foods'].search([['id', '=', fats_id],])
        for record2 in get_detail:
            fats = record2.fats

        record.fats = fats

我希望这会有所帮助。

答案 1 :(得分:1)

添加'依赖'定义你的方法。只要任何相关字段的值发生变化,该方法将始终(且仅)被调用:

{{1}}

答案 2 :(得分:1)

使用decorator multi和depends,

set /a