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
这可能对您有所帮助。
我制作了一个 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
这可能对您有所帮助。