自动将现有字段的值添加到自定义字段 [Odoo14]

问题描述

我是 odoo 的新手,我想将 sale.order 中字段“client_order_ref”的值添加到 sale.order.line 中的自定义字段“client_ref”中。

目标是在填充“client_order_ref”时自动填充此自定义字段

one of the array iteration methods

模型:

class sale_order(models.Model):
    _inherit = 'sale.order'

    sale_order_id = fields.Many2one('sale.order.line',string='Liaison Order Line')



class sale_order_line(models.Model):
    _inherit = 'sale.order.line'

    client_ref = fields.One2many('sale.order','sale_order_id',string="Référence Client",readOnly=True)

  

XML:

 <odoo>
  <data>
    <record model="ir.ui.view" id="view_quotation_form_inherited">
      <field name="name">view.quotation.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='product_uom_qty']" position="before">
          <field name="client_ref">
              <tree>
                <field name="client_order_ref" String="Référence client"/>
              </tree>
            </field>
        </xpath>
        <xpath expr="//tree/field[@name='product_uom_qty']" position="before">
            <field name="client_ref">
              <tree>
                <field name="client_order_ref" String="Référence client"/>
              </tree>
            </field>
        </xpath>

      </field>
    </record>
  </data>
</odoo>

解决方法

Order Lines (order_line) 字段已经使用 order_id 字段(反向名称)将销售订单行链接到销售订单,因此您可以使用该字段从销售订单中获取字段值。

您可以将 client_order_ref 定义为 related 以提供当前记录(销售订单行)上的子字段 (client_order_ref) 的值:

class SaleOrder(models.Model):
    _inherit = 'sale.order'

    client_order_ref = fields.Char()


class SaleOrderLine(models.Model):
    _inherit = 'sale.order.line'

    client_ref = fields.Char(related="order_id.client_order_ref")