Odoo电子邮件模板不呈现

时间:2016-09-12 11:59:49

标签: email openerp odoo-8

我正在尝试创建电子邮件模板并尝试添加一些条件

%if object.origin:
origin : ${object.origin or ''}
%endif 

但是当我尝试渲染模板时,它只渲染$ part而不是%if%endif部分,

所以%if和%end如果在电子邮件模板中看起来可见,并且它没有执行条件。

如何克服?

2 个答案:

答案 0 :(得分:1)

Odoo使用jinja&电子邮件模板的mako模板引擎,您的代码看起来就像使用了mako模板,但您可以试用jinja模板。应用jinja模板后,代码变得不同,如

{% if object.origin %}
origin : ${object.origin or ''}
{% endif %}

答案 1 :(得分:0)

分享知识:

<块引用>

这个解析问题很可能是由多种因素造成的:

Jinja2/Mako 模板中的 % 语法对应于 line 语句,这仅在 % 符号是第一个时才有效 行上的非空白字符。当您处理 HTML 时 模板(就像电子邮件模板一样),有一个非常非常 很有可能每一行在 % 之前都有很多不可见的 HTML 标签 符号,或者 % 符号不在自己的行上。

这是无效的:
% if object.street2: ${(object.street or '-') | 安全}
%结束

虽然这是有效的(即使很奇怪,混合 2 个不同的 字段):
% 如果 object.street2:
${(object.street or '-') |安全}
%结束

credits to Oliver Dony (more details)