私は2つのフィールド(fieldAとfieldB)を持っています
私が欲しいもの:-fieldAに何かが含まれている場合、fieldBは表示されません
私が試したこと:
<span tal:replace="here/getFieldA" />
<span tal:omit-tag="here/getFieldA" tal:replace="here/getFieldB" />
だからそれは動作しません
ご協力いただきありがとうございます
私は2つのフィールド(fieldAとfieldB)を持っています
私が欲しいもの:-fieldAに何かが含まれている場合、fieldBは表示されません
私が試したこと:
<span tal:replace="here/getFieldA" />
<span tal:omit-tag="here/getFieldA" tal:replace="here/getFieldB" />
だからそれは動作しません
ご協力いただきありがとうございます
あなたが探しているのは、おそらくおよびプレフィックスtal:condition
と組み合わされたです。not:
exists:
<span tal:replace="here/getFieldA" />
<span tal:condition="not:exists:here/getFieldA" tal:replace="here/getFieldB" />
|
または、 if 演算子のように機能するoperatorを使用して、最初の要素の存在をテストすることもできます。存在しない場合は、次の式が使用されます。
<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>
タグは省略されていますが、内容は保持されています。
試す
<span tal:condition="here/getFieldA" tal:replace="here/getFieldB" />
Zopeページテンプレートリファレンスhttp://docs.zope.org/zope2/zope2book/AppendixC.html
これは、コメントに基づいて元の回答を改良したものです。
<tal:block
tal:define="zone here/getZoneintervention;
thezone python:', '.join(zone);
dep here/getDepartements;
thedep python:', '.join(dep)">
<span tal:condition="zone" tal:replace="thezone" />
<span tal:condition="not:zone" tal:replace="thedep" />
</tal:block>