如何基于Many2many字段所选员工自动添加任务关注者并发送通知邮件?
解决方案
直接创建mail.followers记录只会在数据库中添加订阅关系,但不会触发Odoo内置的邮件通知逻辑。要同时完成添加关注者和发送通知的需求,应该使用Odoo模型提供的**message_subscribe标准方法**,该方法会自动处理订阅后的通知邮件发送。
修改后的代码实现
# 获取需要添加为关注者的合作伙伴ID(过滤已存在的关注者) new_follower_partners = self.x_studio_many2many_field_Cv65K.mapped('user_id.partner_id') new_follower_ids = new_follower_partners.filtered(lambda p: p not in self.message_partner_ids).ids # 调用标准订阅方法,自动发送通知邮件 if new_follower_ids: self.message_subscribe(partner_ids=new_follower_ids)
关键说明
message_subscribe是所有继承mail.thread的模型(project.task默认继承该模型)都具备的方法,调用时会:- 自动创建
mail.followers订阅记录 - 触发系统默认的订阅通知邮件发送流程,向新订阅的合作伙伴推送邮件
- 自动创建
- 若需自定义通知内容,可在调用
message_subscribe后通过message_post发送自定义消息,或修改系统内置的mail.template_followers模板。
内容的提问来源于stack exchange,提问作者maniel
相关产品推荐
相关产品推荐

