Простое решение
Вы можете сделать это так:
<a href="#"
% if c.is_friend is True:
class="friend"
% endif
>link</a>
ПРЕДУПРЕЖДЕНИЕ
Обратите внимание на {}
внутри ${}
!
Решение с троичным оператором, упомянутым Йохеном, также является правильным, но может привести к неожиданному поведению при сочетании с str.format()
.
Вам нужно избегать {}
внутри Мако ${}
, потому что, по-видимому, Мако перестает анализировать выражение после нахождения первого }
. Это означает, что вы не должны использовать, например:
${'{}'.format(a_str)}
. Вместо этого используйте ${'%s' % a_str}
.
${'%(first)s %(second)s' % {'first': a_str1, 'second': a_str2}}
. Вместо этого используйте
${'%(first)s %(second)s' % dict(first=a_str1, second=a_str2)}
Общее решение
Так, например, если вам нужно придумать более общее решение, скажем, вам нужно поместить переменную с именем relationship
внутри тега класса вместо статической строки, вы можете сделать это так со старой строкой форматирование:
<a href="#" ${'class="%s"' % relationship if c.has_relation is True else ''}>link</a>
или без форматирования строки:
<a href="#"
% if c.has_relation is True:
class="${relationship}"
% endif
>link</a>
Это должно работать для Python 2.7+ и 3 +