为什么我不能在 Odoo 11 的电子邮件模板正文中使用 CDATA?
Why can't I use CDATA in email template body in Odoo 11?
我正在尝试为发票创建一个新的电子邮件模板。我所做的是复制所有现有的发票电子邮件模板 (xml id: email_template_edi_invoice
),body_html
字段除外。问题是:
如果我使用 CDATA
填写 body_html
,我会收到以下断言错误:
Element odoo has extra content: data, line 6
但是,如果我不使用它,它会起作用。我简化了body_html
内容,但问题依然存在
以下电子邮件模板有效:
<?xml version="1.0" ?>
<odoo>
<data>
<!--Email template -->
<record id="email_template_edi_invoice_v8" model="mail.template">
<field name="name">Invoicing: Invoice email v8.0</field>
<field name="email_from">${(object.user_id.email and '"%s" <%s>' % (object.user_id.name, object.user_id.email) or '')|safe}</field>
<field name="subject">${object.company_id.name} Invoice (Ref ${object.number or 'n/a'})</field>
<field name="partner_to">${object.partner_id.id}</field>
<field name="model_id" ref="account.model_account_invoice"/>
<field name="auto_delete" eval="True"/>
<field name="report_template" ref="account.account_invoices"/>
<field name="report_name">Invoice_${(object.number or '').replace('/','_')}_${object.state == 'draft' and 'draft' or ''}</field>
<field name="lang">${object.partner_id.lang}</field>
<field name="body_html" type="html">
<div>
Hola
</div></field>
</record>
</data>
</odoo>
以下电子邮件模板不起作用(给出额外内容错误):
<?xml version="1.0" ?>
<odoo>
<data>
<!--Email template -->
<record id="email_template_edi_invoice_v8" model="mail.template">
<field name="name">Invoicing: Invoice email v8.0</field>
<field name="email_from">${(object.user_id.email and '"%s" <%s>' % (object.user_id.name, object.user_id.email) or '')|safe}</field>
<field name="subject">${object.company_id.name} Invoice (Ref ${object.number or 'n/a'})</field>
<field name="partner_to">${object.partner_id.id}</field>
<field name="model_id" ref="account.model_account_invoice"/>
<field name="auto_delete" eval="True"/>
<field name="report_template" ref="account.account_invoices"/>
<field name="report_name">Invoice_${(object.number or '').replace('/','_')}_${object.state == 'draft' and 'draft' or ''}</field>
<field name="lang">${object.partner_id.lang}</field>
<field name="body_html" type="html"><![CDATA[
<div>
Hola
</div>]]></field>
</record>
</data>
</odoo>
任何遇到过这个问题的人都可以告诉我发生了什么事吗?
在其他方面看起来有效,但属性 type=”html”
可能会导致您的错误。像这样尝试没有它
...
<field name="body_html"><![CDATA[
...
我正在尝试为发票创建一个新的电子邮件模板。我所做的是复制所有现有的发票电子邮件模板 (xml id: email_template_edi_invoice
),body_html
字段除外。问题是:
如果我使用 CDATA
填写 body_html
,我会收到以下断言错误:
Element odoo has extra content: data, line 6
但是,如果我不使用它,它会起作用。我简化了body_html
内容,但问题依然存在
以下电子邮件模板有效:
<?xml version="1.0" ?>
<odoo>
<data>
<!--Email template -->
<record id="email_template_edi_invoice_v8" model="mail.template">
<field name="name">Invoicing: Invoice email v8.0</field>
<field name="email_from">${(object.user_id.email and '"%s" <%s>' % (object.user_id.name, object.user_id.email) or '')|safe}</field>
<field name="subject">${object.company_id.name} Invoice (Ref ${object.number or 'n/a'})</field>
<field name="partner_to">${object.partner_id.id}</field>
<field name="model_id" ref="account.model_account_invoice"/>
<field name="auto_delete" eval="True"/>
<field name="report_template" ref="account.account_invoices"/>
<field name="report_name">Invoice_${(object.number or '').replace('/','_')}_${object.state == 'draft' and 'draft' or ''}</field>
<field name="lang">${object.partner_id.lang}</field>
<field name="body_html" type="html">
<div>
Hola
</div></field>
</record>
</data>
</odoo>
以下电子邮件模板不起作用(给出额外内容错误):
<?xml version="1.0" ?>
<odoo>
<data>
<!--Email template -->
<record id="email_template_edi_invoice_v8" model="mail.template">
<field name="name">Invoicing: Invoice email v8.0</field>
<field name="email_from">${(object.user_id.email and '"%s" <%s>' % (object.user_id.name, object.user_id.email) or '')|safe}</field>
<field name="subject">${object.company_id.name} Invoice (Ref ${object.number or 'n/a'})</field>
<field name="partner_to">${object.partner_id.id}</field>
<field name="model_id" ref="account.model_account_invoice"/>
<field name="auto_delete" eval="True"/>
<field name="report_template" ref="account.account_invoices"/>
<field name="report_name">Invoice_${(object.number or '').replace('/','_')}_${object.state == 'draft' and 'draft' or ''}</field>
<field name="lang">${object.partner_id.lang}</field>
<field name="body_html" type="html"><![CDATA[
<div>
Hola
</div>]]></field>
</record>
</data>
</odoo>
任何遇到过这个问题的人都可以告诉我发生了什么事吗?
在其他方面看起来有效,但属性 type=”html”
可能会导致您的错误。像这样尝试没有它
...
<field name="body_html"><![CDATA[
...