我正在尝试创建电子邮件模板并尝试添加一些条件
%if object.origin:
origin : ${object.origin or ''}
%endif
但是当我尝试渲染模板时,它只渲染$ part而不是%if%endif部分,
所以%if和%end如果在电子邮件模板中看起来可见,并且它没有执行条件。
如何克服?
答案 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 '-') |安全}
%结束