我正在从模块@override create方法发送电子邮件,这是我的方法
@api.model
def create(self, values):
res = super(licenses, self).create(values)
template = self.env.ref('licenses.license_create_email_template', False)
# Send out the e-mail template to the user
self.env['mail.template'].browse(template.id).send_mail(res, force_send=True)
return res
这是我的模板
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record id="license_create_email_template" model="mail.template">
<field name="name">License Create</field>
<field name="email_from">${user.email|safe}</field>
<field name="subject">License Create</field>
<field name="email_to">${object.x_partner_id.email}</field>
<field name="model_id" ref="licenses.model_licenses_licenses"/>
<field name="auto_delete" eval="True"/>
<field name="lang">${object.x_partner_id.lang}</field>
<field name="body_html"><![CDATA[
The License of ${object.x_partner_id.name} has been created.
]]></field>
</record>
</data>
</odoo>
当我预览模板以正确设置它呈现时,但是当我从代码中呈现电子邮件模板时,它给出了呈现错误,这里是呈现错误图片 (Picture)Email template render problem error
答案 0 :(得分:1)
send_mail
模型的mail.template
方法的参数之一是res_id
,它是一个整数,请看一下其definition。并且,如果您使用的是.v10新api,则根据documentation create
方法返回的记录集不是整数,因此您可以通过该方式从该记录集中获取id
{{ 1}},并将其作为res.id
的参数传递。
我希望这个答案对您有帮助。