onchange方法改变many2one类型字段的domain
首先:
in_dept 部门 ---many2one类型
in_post岗位 ---many2one类型
部门中有岗位列表,关系是many2many
'job_ids':fields.many2many('hr.job', 'hr_department_job_rel', 'department_id', 'job_id', u'岗位列表'),
解决方法:
py文件,定义onchange_department方法
def onchange_department(self, cr, uid, ids, in_dept):
department_obj = self.pool.get("hr.department")
val = {}
dom = {}
if in_dept:
jobs = department_obj.browse(cr, uid, in_dept)
parent_ids = jobs.parent_id
job_id = [job.id for job in jobs.job_ids]
job_id.extend([parent_job.id for parent_job in parent_ids.job_ids])
dom = {'in_post': [('isable','=','enable'),('id', 'in', job_id)]}
return {'value': val, 'domain': dom}
xml视图界面,添加on_change="onchange_department(in_dept)"