2

我正在尝试计算一个字段的值并将该值存储在数据库中。如果我删除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每种产品的数量并将其存储在跟踪表中,以便能够绘制图表。

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

4

3 回答 3

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

我希望这有帮助。

于 2015-03-16T04:32:27.650 回答
1

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

@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
于 2015-11-06T20:58:40.120 回答
1

使用装饰器 multi 和依赖,

@api.multi
@api.depends('name')
def function_name(self):
    result= your_code
    self.fats = result 
于 2017-05-11T11:36:25.187 回答