2

私は2つのフィールド(fieldAとfieldB)を持っています

私が欲しいもの:-fieldAに何かが含まれている場合、fieldBは表示されません

私が試したこと:

<span tal:replace="here/getFieldA" />

<span tal:omit-tag="here/getFieldA"  tal:replace="here/getFieldB" />

だからそれは動作しません

ご協力いただきありがとうございます

4

3 に答える 3

4

あなたが探しているのは、おそらくおよびプレフィックス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>タグは省略されていますが、内容は保持されています。

于 2011-03-09T19:12:53.437 に答える
1

試す

<span tal:condition="here/getFieldA"  tal:replace="here/getFieldB" />

Zopeページテンプレートリファレンスhttp://docs.zope.org/zope2/zope2book/AppendixC.html

于 2011-03-09T14:15:29.193 に答える
1

これは、コメントに基づいて元の回答を改良したものです。

<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>
于 2011-03-09T16:46:38.727 に答える