Python Odoo:仅从计算机生成一次计算字段
我有一个奇怪的例子,一个计算字段Python Odoo:仅从计算机生成一次计算字段,python,odoo-12,Python,Odoo 12,我有一个奇怪的例子,一个计算字段sell\u price,我希望它在更改时存储新值,所以我放了一个store=True和一个inverse函数,这样它就不会影响原始值,这对我来说非常有效,并将新值存储到数据库中。 然而,当从另一个模型调用时,它会重新计算并返回原始值(我检查了数据库并存储了新值) 它为什么会这样做,这很令人困惑 代码 通过related在这里调用它会带来旧的原始值 class ReturnLine(models.Model): sale_line_id = fields.
sell\u price
,我希望它在更改时存储新值,所以我放了一个store=True
和一个inverse
函数,这样它就不会影响原始值,这对我来说非常有效,并将新值存储到数据库中。
然而,当从另一个模型调用时,它会重新计算并返回原始值(我检查了数据库并存储了新值)
它为什么会这样做,这很令人困惑
代码
通过related
在这里调用它会带来旧的原始值
class ReturnLine(models.Model):
sale_line_id = fields.Many2one(comodel_name="custom.sale.line", string="Product", required=False, )
price = fields.Float(string="Price", related='sale_line_id.sell_price')
我还尝试使用compute
而不是related
,仍然得到了相同的结果
假设原价售价=5
新的售价=10
在数据库中检查sell\u price
=10
现在价格=5
class ReturnLine(models.Model):
sale_line_id = fields.Many2one(comodel_name="custom.sale.line", string="Product", required=False, )
price = fields.Float(string="Price", related='sale_line_id.sell_price')