0

I'm sending email from module @override create method here is my method

@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

here is my template

<?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>

When i preview template from setting it rendering correctly but when i render email template from code it gives render error here is render error picture (Picture)Email template render problem error

CZoellner
  • 13,553
  • 3
  • 25
  • 38
Umar Iqbal
  • 47
  • 1
  • 1
  • 8

1 Answers1

1

One of the parameters for send_mail method of mail.template model is res_id that is an integer, take a look its definition. And if you are using .v10 new api, acording to the documentation create method returns a recordset not an integer, therefore you sould get the id from that record set in this way res.id and pass it as a parameter of send_mail.

I hope this answer can be helpful for you.

Juan Salcedo
  • 1,598
  • 1
  • 16
  • 28