在odoo 12中按项目筛选员工



我正在自定义Odoo项目模块,在该模块中,我们有分配给员工的任务的项目,我需要根据项目选择有一个员工下拉列表,但由于没有直接关系,我必须搜索与项目相关的所有任务,然后搜索员工。

这是我目前的型号:

class myModel(models.TransientModel):
_name = "mymodule.mymodel"
project_id = fields.Many2one('project.project', string="Project")
task_id = fields.Many2one('project.task', string="Task", domain="[('project_id', '=', project_id)]")
employee_id = fields.Many2one('hr.employee', string="Assign To")
@api.onchange('project_id')
def _projecy_onchange(self):
if not self.project_id.id:
return {'domain': {'employee_id': []}}

tasks = self.env['project.task'].search([('project_id','=',self.project_id.id)])

user_ids = []
for t in tasks:
if t.user_id:
user_ids.append(t.user_id.id)


if len(user_ids)>0:
employees = self.env['hr.employee'].search(['user_id','in', user_ids])
return {'domain': {'employee_id': employees}}
else:
return {'domain': {'employee_id': []}}

当我想搜索员工时,我遇到了一个问题:

employee=self.env['hr.emplyee'].search(['user_id','in',user_ids](

我得到以下错误:

elif token[1]=="in"而非token[2]:IndexError:元组索引out距离

当我打印user_ids时,它是一个带有ID的基本列表,类似于[9](单个元素,更明显地云化了我(

我知道搜索可以作为employees=self.env['hr.employee'].search(['user_id','in',[9](

将感谢任何指导

你得到了odoo的搜索方法的错误语法,这样做吧,

employees = self.env['hr.employee'].search([('user_id','in', user_ids)])

语法中缺少的部分:域周围的圆括号。

最新更新