Odoo 电子邮件模板呈现错误

Odoo Email template render error

我正在从模块@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

mail.template模型的send_mail方法的参数之一是res_id,是一个整数,看看它的definition. And if you are using .v10 new api, acording to the documentationcreate方法returns 记录集不是整数,因此您可以通过这种方式从该记录集中获取 id res.id 并将其作为 send_mail.

的参数传递

希望这个回答能对您有所帮助。