即使同时满足以下两个条件,我目前也无法解决在Jinja2模板中解析为if
的第一个else
语句的问题:
{%- elif frontend_type == 'beast' -%}
{{ radosgw_frontend_type }} {{ 'ssl_' if radosgw_frontend_ssl_certificate and haproxy_frontend_ssl_termination is sameas false else '' }}endpoint={{ _rgw_binding_socket }}{{ ' ssl_certificate='+radosgw_frontend_ssl_certificate if radosgw_frontend_ssl_certificate else '' }}
{%- endif -%}
有问题的代码段似乎是and haproxy_frontend_ssl_termination is sameas false
,因为其他条件正常。我不确定为什么不满足此条件,即使它封装在{% %}
中似乎可以在另一个模板中工作。
任何帮助将不胜感激!
答案 0 :(得分:0)
我怀疑您的问题是使用sameas
测试。来自the documentation:
sameas(值,其他)
检查对象是否指向与另一个对象相同的内存地址:
这几乎从来不是您想要做的。如果要检查表达式是否为假,则无需将其与false
进行显式比较。例如,您可以简单地写:
{{ 'ssl_' if radosgw_frontend_ssl_certificate and not haproxy_frontend_ssl_termination else '' }}