在 one2many odoo 12 中获取默认值

To get default values in one2many odoo 12

实际上我有 2 个模型,A 和 B,连接与 sale.order 和 sale.order.line 相同,这里的连接线是 medicine_line 它是一个 one2many field.so 在模型 A 中添加 specialist_name 时,模型 B 中的“每一行”(笔记本) specialist_name 想要默认获取 .

我试过下面的代码,但只在笔记本的第一行获取名称:

*.py

medicine_line = 一对多字段

@api.onchange('specialist_name')
def _onchange_specialist_name(self):
    for record in self:
        for each in record.medicine_line:
            if record.specialist_name:
                lines = [(5, 0, 0)]
                for line in self.specialist_name:
                    val = {
                        'specialist_name': line.id,
                    }
                    lines.append((0, 0, val))
                record.each = lines

您可以在上下文中传递默认值。

<group>
    <field name="specialist_name"/>
</group>

<field name="medicine_line" context="{'default_specialist_name': specialist_name}">
    <tree editable="bottom">
        ...
        <field name="specialist_name"/>
    </tree>
</field>

每次单击 Add item link 按钮时,专家名称都应填写上下文中指定的默认值。