Odoo 14树视图按钮打开员工卡片的实现问题求助
解决思路与代码修改
1. 确认模型关联字段
首先要保证informes.informe_empleados模型里有一个关联hr.employee的Many2one类型字段,比如命名为employee_id。如果还没定义,在模型文件中添加:
employee_id = fields.Many2one('hr.employee', string='Empleado', required=True)
2. 修正按钮函数
修改open_form_empleados函数,通过当前记录的关联字段直接获取员工ID,填入res_id参数:
def open_form_empleados(self): # 处理未关联员工的异常情况 if not self.employee_id: raise UserError("Este registro no tiene un empleado asociado.") return { 'type': 'ir.actions.act_window', 'view_type': 'form', 'res_id': self.employee_id.id, # 获取关联员工的数据库ID 'view_mode': 'form', 'res_model': 'hr.employee', 'view_id': self.env.ref('per_employee_model.hr_employee_inherit').id, 'target': 'new' }
关键说明
self对应当前点击的informes.informe_empleados记录,self.employee_id.id就是关联员工的数据库ID,这正是res_id需要的取值。- 如果你的关联字段名称不是
employee_id,替换成实际字段名即可。 - 加入异常判断是为了避免因未关联员工导致的功能报错。
内容的提问来源于stack exchange,提问作者Aureatic
相关产品推荐
相关产品推荐

