You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 06:30:52