在Odoo v8中未触发计算字段

在Odoo v8中未触发计算字段,odoo,odoo-8,Odoo,Odoo 8,我试图计算一个字段的值,并将该值存储在DB中。如果我删除了store=True,一切看起来都很好,但是当我添加参数而不是显示函数的结果时,我的所有字段都会得到一个0 我还意识到,当我在树状视图或表单视图上时,没有调用我的计算字段函数 我的代码如下所示: @api.one def _compute_fats(self): for record in self: fats = 0 fats_id = record.name.i

我试图计算一个字段的值,并将该值存储在DB中。如果我删除了
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)
我的全部目标是获取每种产品的
脂肪量
并将其存储在跟踪表中,以便能够绘制图表

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

请尝试以下内容:

@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

我希望这会有所帮助。

在方法中添加“依赖”定义。每当任何依赖字段的值发生更改时,将始终(且仅)调用该方法:

@api.multi
@api.depends('name')        # seems to depend on record.name ??
def _compute_fats(self):
    for record in self:
        fats = 0
        fats_id = record.name.id     # Are you sure this is correct??
        get_detail = self.env['trackfood.foods'].browse([fats_id])   # Faster search by id
        for record2 in get_detail:
            fats = record2.fats

        record.fats = fats

使用decorator和multi-depends

@api.multi
@api.depends('name')
def function_name(self):
    result= your_code
    self.fats = result