Odoo 10收到的自定义电子邮件模板渲染错误

时间:2020-10-22 08:15:52

标签: python email odoo odoo-10

我正在尝试从自定义模块发送电子邮件,但是发生了这样的错误:“无法呈现模板”

我实际上收到了一封电子邮件,但是内容的主体并不相同。这是XML文件中的代码:

<odoo>
<data noupdate="1">
    <record id="task_email_template_one" model="mail.template">
        <field name="name">Task Email</field>
        <field name="email_from">${object.user_email| safe}</field>
        <field name="email_to">${object.user_id}</field>
        <field name="subject">The Task ${object.name}</field>
        <field name="lang">${object.lang}</field>
        <field name="model_id" ref="task.model_project_task"/>
        <field name="body_html"><![CDATA[
            <p>
                    Sample Message                  
            </p>
            ]]>
        </field>
    </record>
</data>

似乎所使用的模板来自mail_template.xml

<template id="message_user_assigned">
      <p>Dear <t t-esc="object.user_id.sudo().name"/>,</p>
      <p>You have been assigned to the <t t-esc="object._description.lower()"/> <t t-esc="object.name_get()[0][1]"/>.</p>
      <p>
          <a t-att-href="'/mail/view?model=%s&amp;res_id=%s' % (object._name, object.id)"
                  style="background-color: #9E588B; margin-top: 10px; padding: 10px; text-decoration: none; color: #fff; border-radius: 5px; font-size: 16px;">
                View <t t-esc="object._description.lower()"/>
          </a>
      </p>
      <p style="color:#9E588B;">Powered by <a href="https://www.odoo.com">Odoo</a>.</p>
</template>

未使用自定义电子邮件模板,而是使用了mail_template中的模板,我该如何解决呢?

编辑:我从XML文件中进行了一些更改,没有错误,但电子邮件的正文内容仍然不同

1 个答案:

答案 0 :(得分:2)

有多个错误,

  1. email_from中有一个错字。代替${object.user.id.email| safe}可以是${object.user_id.email| safe}
  2. model_id必须根据模型XML id(project.model_project_task)而不是task.model_project_task
  3. 此外,您还错过了email中用户的email_to

在改进的邮件模板下方检查。

    <data>
        <record id="task_email_template_one" model="mail.template">
            <field name="name">Task Email</field>
            <field name="email_from">${object.user_id.email| safe}</field>
            <field name="email_to">${object.user_id.email}</field>
            <field name="subject">The Task ${object.name}</field>
            <field name="lang">${object.lang}</field>
            <field name="model_id" ref="project.model_project_task"/>
            <field name="body_html"><![CDATA[
                <p>
                        Sample Message
                </p>
                ]]>
            </field>
        </record>
    </data>

由于您添加了noupdate=1,删除了邮件模板并再次升级了模块才能应用更改,因此在开发模块时,应删除noupdate=1:)