问题描述
我是 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")