如何在Odoo 15中直接从现有员工创建用户账户及批量操作方法
Odoo 15 从现有员工创建/批量创建用户账户
单个员工直接创建用户
完全可以直接从现有员工表单创建关联用户,步骤如下:
- 进入HR模块,打开目标员工的详情表单
- 点击顶部菜单栏的动作下拉选项,选择「创建用户」
- 在弹出的用户创建窗口中,填写用户名、邮箱等必填信息,保存后系统会自动将该用户与当前员工绑定
批量将员工转为用户账户
有两种常用方式实现批量操作:
方式1:原生批量动作(无需开发)
- 进入HR模块的员工列表视图
- 勾选所有需要创建用户的员工记录
- 点击顶部菜单栏的动作下拉选项,选择「创建用户」
- 在批量创建弹窗中,可统一设置默认规则(如是否发送激活邮件、默认用户组),确认后系统会批量生成用户并自动关联对应员工
方式2:自定义服务器动作(灵活扩展)
如果需要自定义字段映射或逻辑,可通过开发者模式创建服务器动作:
- 开启开发者模式(设置->激活开发者模式)
- 进入「设置->技术->自动化->服务器动作」,新建动作
- 模型选择
hr.employee,动作类型选择「Python代码」 - 写入以下代码(可根据需求调整字段规则):
for employee in records: if not employee.user_id: # 生成登录名,优先用工作邮箱,无则用姓名拼接 login = employee.work_email or f"{employee.name.replace(' ', '.').lower()}@yourcompany.com" # 创建用户并关联员工 user = self.env['res.users'].create({ 'name': employee.name, 'login': login, 'email': employee.work_email, 'groups_id': [(6, 0, [self.env.ref('base.group_user').id])], # 绑定基础用户组 'notify_email': 'always' # 自动发送激活邮件 }) employee.write({'user_id': user.id})
- 保存动作后,回到员工列表勾选目标记录,选择该服务器动作执行即可
注意事项
- 确保员工的
work_email字段尽量完整,避免生成无效或重复的登录名 - 批量创建时,系统会自动处理登录名重复的情况,若冲突会在登录名后添加后缀
- 若不需要自动发送激活邮件,可去掉代码中的
notify_email参数,或在原生批量动作中取消勾选发送邀请
内容的提问来源于stack exchange,提问作者RAK
相关产品推荐
相关产品推荐

