То, что вы ищете, это tal:condition
, возможно, в сочетании с префиксами not:
и exists:
:
<span tal:replace="here/getFieldA" />
<span tal:condition="not:exists:here/getFieldA" tal:replace="here/getFieldB" />
В качестве альтернативы вы можете использовать оператор |
, который действует как оператор if, проверяя существование первого элемента. Если он не существует, он будет использовать следующее выражение и так далее:
<span tal:replace="here/getFieldA | here/getFieldB" />
Атрибут tal:omit-tag
означает что-то совсем другое. Если его выражение оценивается как True
, то тег и только сам тег исключается из вывода. Это лучше всего иллюстрируется на примере:
<span tal:omit-tag="">
<i>This part will be retained</i>
</span>
Рендеринг этого фрагмента шаблонной страницы приводит к:
<i>This part will be retained</i>
Окружающий тег <span>
был опущен, но содержимое было сохранено.