Odoo 10 接收到的自定义电子邮件模板渲染不正确
Odoo 10 received custom email template rendering incorrectly
我正在尝试从自定义模块发送电子邮件,但出现了这样的错误:“无法呈现模板”
我实际上收到了一封电子邮件,但内容正文不一样。这是 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&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 文件进行了一些更改,没有错误,但电子邮件的正文内容仍然不一样
有多个错误,
email_from
中有错别字。可以 ${object.user_id.email| safe}
而不是 ${object.user.id.email| safe}
- model_id 必须根据型号 XML id (
project.model_project_task
) 而不是 task.model_project_task
- 此外,您错过了
email_to
中用户的 email
查看下方改进后的邮件模板。
<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
:)
我正在尝试从自定义模块发送电子邮件,但出现了这样的错误:“无法呈现模板”
我实际上收到了一封电子邮件,但内容正文不一样。这是 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&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 文件进行了一些更改,没有错误,但电子邮件的正文内容仍然不一样
有多个错误,
email_from
中有错别字。可以${object.user_id.email| safe}
而不是 - model_id 必须根据型号 XML id (
project.model_project_task
) 而不是task.model_project_task
- 此外,您错过了
email_to
中用户的
${object.user.id.email| safe}
email
查看下方改进后的邮件模板。
<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
:)