我使用反转字段使计算字段可编辑,但当我手动输入值时,保存时它被替换为来自_compute_test的值,我如何保存手动输入的值?
我的.py文件:
class SaleOrderInherited(models.Model):
_inherit = 'sale.order'
custom_field = fields.Char(string='Test',
compute="_compute_test", inverse="_inverse_compute_test")
#warning = fields.Boolean(default=False)
@api.depends('tax_totals_json', 'date_order')
def _compute_test(self):
for record in self:
if int(json.loads(record.tax_totals_json)['amount_total']) == 0:
record.custom_field = randint(1, 1000)
else:
record.custom_field = f"{json.loads(record.tax_totals_json)['amount_total']} - {record.date_order}"
def _inverse_compute_test(self):
pass
我的.xml文件:
<odoo>
<data>
<!--Inherit the sale order form view-->
<record id="view_sale_order_custom" model="ir.ui.view">
<field name="name">sale.order.custom.form.inherited</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='partner_id']" position="after">
<field name="custom_field"/>
</xpath>
</field>
</record>
</data>
</odoo>
我尝试使用force_保存,但没有任何帮助,而且我也没有找到其他方法。
1条答案
按热度按时间7fhtutme1#
在字段中使用
store=True
属性。您还需要强制执行计算方法逻辑,以便它不会总是覆盖字段的值。
force_save
属性用于只读字段,而create
和write
方法将忽略该属性