python 如何保存用户在计算字段中输入的值?

yacmzcpb  于 2022-11-21  发布在  Python
关注(0)|答案(1)|浏览(140)

我使用反转字段使计算字段可编辑,但当我手动输入值时,保存时它被替换为来自_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_保存,但没有任何帮助,而且我也没有找到其他方法。

7fhtutme

7fhtutme1#

在字段中使用store=True属性。
您还需要强制执行计算方法逻辑,以便它不会总是覆盖字段的值。
force_save属性用于只读字段,而createwrite方法将忽略该属性

相关问题