如何强制更新模型中的字段?

问题描述 投票:0回答:1

我想知道如何在

price_subtotal
模型中强制更新字段
sale_order_line
。它是由多个模块计算得出的,但我希望能够从我的自定义模块更新它。通过单击按钮,该字段会更新为我计算的特定数字。

我尝试过(创建部分成功)

sale_order_line = self.env['sale.order.line'].create({...})
sale_order_line.update({
  'price_subtotal': 1234,
})

我还尝试将字段更新放在创建部分中。这些方法都不会更新该字段。

我需要一种方法来强制更新字段。

odoo odoo-14
1个回答
0
投票

您甚至不能强制写入计算字段。这些字段将在后续流程中使用,并且它们必须准确,这就是计算字段的原因。

但是如果您无论如何都想更新这些字段,有几种方法可以做到这一点。

1。继承计算方法:您可以在自定义模块中继承字段的计算方法,并根据需要更改或覆盖它的计算。

2。覆盖字段: 您可以覆盖自定义模块中的字段,在同一模块中定义具有相同名称的字段,并且不要在定义中写入compute=""。当您的自定义模块安装时,它将覆盖基本字段。

3.替换字段: 在自定义模块中创建一个新字段。继承视图并隐藏基本字段并在那里显示您的字段。这只能用于可见性目的。在发票等后续流程中,将采用原始基本字段值。

这些是您可以在 Odoo 中操纵基本计算字段的计算的方法。但是我不推荐它,我建议检查配置并检查计算方法以了解如何在该计算字段中获得所需的值。

© www.soinside.com 2019 - 2024. All rights reserved.