我有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" />

另外,您可以使用 | operator,它充当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>标记,但保留了内容。

关于plone - 条件取决于其他领域,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5246635/

10-13 00:58