如何在 odoo 中使用 message_post_with_template 功能发送邮件
How do I send mail with message_post_with_template function in odoo
我有一个在调用时发送群发邮件的函数,它在 odoo 13 中工作,但是当移植到 odoo 12 时,该函数给出了一个错误
AtributeError: 'hr.payslip' object has no attribute 'message_post_with_template'
这是错误来源的模型和函数。
class HREmailPayslip(models.TransientModel):
_name = 'hr.payslip.email.wizard'
_description = 'Payslip email Wizard'
message = fields.Text()
payslip_ids = fields.Many2many('hr.payslip')
def action_do_email_send(self):
context = dict(self._context or {})
payslip_ids = self.env['hr.payslip'].browse(context.get('active_ids'))
template_id = self .env.ref('hr_payslip_email.email_template_send_payslip')
# force_send=False: odoo will put it in queue (default)
for p in payslip_ids.filtered(lambda r: r.state == 'done'):
# mail = template_id.send_mail(p.id, force_send=False)
p.message_post_with_template(template_id=template_id.id)
return {'type': 'ir.actions.act_window_close'}
在 odoo 13 中,message_post_with_template 函数正常工作,但在 odoo 12 中,它表示该模型没有该函数,所以我检查了 13 的 hr.payslip 模型以检查它是否具有该函数它没有,但不知何故它仍然有效,但对于 odoo 12 不是这样。可能有什么问题,我如何在 odoo 12 中实现这一点?
所以我发现在odoo 12 hr.payslip中没有继承mail.thread mixin class,所以我只好在我的inherited hr.payslip class中继承通过
class HrPayslip(models.Model):
_name = 'hr.payslip'
# _inherit = 'hr.payslip'
_inherit = ['hr.payslip', 'mail.thread']
我有一个在调用时发送群发邮件的函数,它在 odoo 13 中工作,但是当移植到 odoo 12 时,该函数给出了一个错误
AtributeError: 'hr.payslip' object has no attribute 'message_post_with_template'
这是错误来源的模型和函数。
class HREmailPayslip(models.TransientModel):
_name = 'hr.payslip.email.wizard'
_description = 'Payslip email Wizard'
message = fields.Text()
payslip_ids = fields.Many2many('hr.payslip')
def action_do_email_send(self):
context = dict(self._context or {})
payslip_ids = self.env['hr.payslip'].browse(context.get('active_ids'))
template_id = self .env.ref('hr_payslip_email.email_template_send_payslip')
# force_send=False: odoo will put it in queue (default)
for p in payslip_ids.filtered(lambda r: r.state == 'done'):
# mail = template_id.send_mail(p.id, force_send=False)
p.message_post_with_template(template_id=template_id.id)
return {'type': 'ir.actions.act_window_close'}
在 odoo 13 中,message_post_with_template 函数正常工作,但在 odoo 12 中,它表示该模型没有该函数,所以我检查了 13 的 hr.payslip 模型以检查它是否具有该函数它没有,但不知何故它仍然有效,但对于 odoo 12 不是这样。可能有什么问题,我如何在 odoo 12 中实现这一点?
所以我发现在odoo 12 hr.payslip中没有继承mail.thread mixin class,所以我只好在我的inherited hr.payslip class中继承通过
class HrPayslip(models.Model):
_name = 'hr.payslip'
# _inherit = 'hr.payslip'
_inherit = ['hr.payslip', 'mail.thread']