问题描述
我有一个奇怪的情况,其中有一个计算字段sell_price
,我希望它在更改时存储新值,所以我放置了一个store=True
和一个inverse
函数,因此不会影响原始值,这对我来说非常合适,并将新值存储到数据库中。
但是,当从另一个模型调用时,它会重新计算并返回原始值(我检查了数据库并存储了新值)
为什么这样行事很令人困惑
代码
class CustomSaleLine(models.Model):
product_id = fields.Many2one(comodel_name="custom.product",string="Product")
sell_price = fields.Float(string='Price',compute='_compute_price',inverse='_compute_dummy',store=True,)
@api.depends('product_id.sell_price')
def _compute_price(self):
for rec in self:
rec.sell_price = rec.product_id.sell_price
def _compute_dummy(self):
pass
通过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
,但仍然得到相同的结果
让我们说原始的sell_price
= 5
新sell_price
= 10
检入数据库sell_price
= 10
现在price
= 5
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)