为什么我不能在Odoo 11的电子邮件模板主体中使用CDATA?

时间:2019-03-27 10:04:07

标签: xml odoo odoo-11

我试图为发票创建一个新的电子邮件模板。我要做的是复制所有现有的发票电子邮件模板(xml id:email_template_edi_invoice),除了body_html字段。这是问题所在:

如果我使用body_html填写CDATA,则会收到以下声明错误:

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 '&quot;%s&quot; &lt;%s&gt;' % (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 '&quot;%s&quot; &lt;%s&gt;' % (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>

遇到此问题的任何人都可以给我提示发生了什么事吗?

1 个答案:

答案 0 :(得分:2)

看起来有效,但是属性type=”html”可能导致您的错误。尝试不使用它

  ...
  <field name="body_html"><![CDATA[
  ...
相关问题