onchange 触发但没有用视图中的值填充字段 (Odoo)

Onchange triggered but didnt fill the fields with the values on the view (Odoo)

我制作了一个 onchange 函数,其目标是自动填充笔记本 sheet 视图中的值。

我的函数工作正常,但它没有填充视图中的字段。

我应该怎么做才能做到这一点?

这是我从 pdb 得到的:

那是我想要的值,但它没有填充视图中的字段

这是 py :

@api.multi
@api.model
@api.onchange('employee_id')
def onchange_lines(self):
    import pdb;pdb.set_trace()
    if self.employee_id:
        check = self.env['hr.employee'].sudo().search([('id','=',self.employee_id.id)])
        for empy in check:
            if empy.id:
                res = {}
                vals = []
                if not empy:
                    vals.
                    res.update({'self.job_id':'', 'self.nik':''})
                else:
                    vals.append({'self.job_id':empy.job_id, 'self.nik':empy.identification_id})
                    res.update(vals)
            return res

这是字段的 xml:

<!-- language: xml -->
<notebook>
    <page string="Employees">
        <field name="employee_ids">
            <tree string="Employees" editable="bottom">
                <field name="nik"/>
                <field name="employee_id"/>
                <field name="job_id"/>
                <field name="ovrtm"/>
                <field name="ttalmtp"/>
            </tree>
        </field>
    </page>
</notebook>

在odoo new api的onchange中可以直接在record-set对象中赋值。

您可以按照下面的代码。

@api.onchange('employee_id')
def onchange_lines(self):
    import pdb;pdb.set_trace()
    if self.employee_id:
        check = self.env['hr.employee'].sudo().search([('id','=',self.employee_id.id)])
        for empy in check:
            if empy.id:
                res = {}
                vals = []
                if not empy:
                    self.job_id=False
                    self.nik=False
                else:
                    self.job_id=empy.job_id
                    self.nik=empy.identification_id

这可能对您有所帮助。