有条件的Jinja2速记

问题:有条件的Jinja2速记

说我有这个:

{% if files %}
    Update
{% else %}
    Continue
{% endif %}

比方说,在PHP中,我可以写一个简写的条件语句,例如:

<?php echo $foo ? 'yes' : 'no'; ?>

有没有一种方法可以将其转换为在jinja2模板中工作:

'yes' if foo else 'no'

Say I have this:

{% if files %}
    Update
{% else %}
    Continue
{% endif %}

In PHP, say, I can write a shorthand conditional, like:

<?php echo $foo ? 'yes' : 'no'; ?>

Is there then a way I can translate this to work in a jinja2 template:

'yes' if foo else 'no'

回答 0

是的,可以使用内联if-expressions

{{ 'Update' if files else 'Continue' }}

Yes, it’s possible to use inline if-expressions:

{{ 'Update' if files else 'Continue' }}

回答 1

另一种方法(但这不是python样式。它是JS样式)

{{ files and 'Update' or 'Continue' }}

Alternative way (but it’s not python style. It’s JS style)

{{ files and 'Update' or 'Continue' }}