我已经创建了onchange
函数,其目标是在笔记本工作表视图上自动填充值。
我的功能正常,但它没有填写视图中的字段。
我该怎么做才能做到这一点?
这是我从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>
答案 0 :(得分:3)
在onchange的新的api中你可以直接在记录集对象中赋值。
您可以按照以下代码进行操作。
@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
这可能会对你有帮助。