如何在odoov8中存储在旧API中声明的计算字段?

2024-05-15 14:34:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须在odoo8中存储一个现有的计算字段(只是因为它应该对用户进行排序)。字段是debit,可以在模块分析文件中找到分析.py,型号account.analytic.account。在

问题是,不幸的是,这个字段是在旧的API中声明的,而我正试图使用这个API来存储它。顺便说一句,只向字段添加store=True是不起作用的(此后,即使我从数据库中删除了存储了一次的列debit,并更新了我的模块以重新生成它),所以我不得不使用“old”@api.depends。在

模型account.analytic.account,有一个名为line_ids的One2many字段,它指向account.analytic.line。字段debit依赖于此字段line_ids,以及account.analytic.line模型的account_iddate和{}。因此,在新API中,compute方法应该具有上面的修饰符:

@api.depends('line_ids', 'line_ids.account_id', 'line_ids.date', 'line_ids.amount')

但我必须用旧API来告诉你,所以我做了我所知道的。在

我的代码:

^{pr2}$

但是一定有一个错误,因为每个记录借方都是0(就像我把store=True)放在一起。但是,如果我输入store=False,则每个记录借方都会正确计算。在

当需要计算值时,工作流甚至没有进入我的方法_get_analytic_account_to_update_from_analytic_line。在

有人记得这个旧的API store字典吗?有什么建议吗?在

您是否会将整个计算方法迁移到新的API中,以便将其存储在数据库中?在


Tags: 模块store模型apiid数据库trueids