TAL (Template Attribute Language) Expressions are used in Zope Page Templates (ZPT) to allow template elements to be replaced, repeated, or omitted. The tal:repeat
statement replicates a sub-tree of your document once for each item in a sequence. Here is an example to conditionally repeat and display values based on its value quantity and position.
<div tal:define="choices context/my_field|nothing" tal:condition="choices"> <tal:onlyone condition="python: len(choices) == 1"> <tal:field i18n:translate="">Primary</tal:field>: <span tal:replace="python: view.term_title(choices[0])" /> </tal:onlyone> <tal:many condition="python: len(choices) > 1" repeat="choice choices"> <tal:first condition="repeat/choice/start"> <tal:field i18n:translate="">Primary</tal:field>: <span tal:replace="python: view.term_title(choice)" /> <br /> <tal:field i18n:translate="">Secondary</tal:field>: </tal:first> <tal:others condition="not:repeat/choice/start"> <span tal:replace="python: view.term_title(choice)" /> <span class="separator" tal:condition="not: repeat/choice/end">,</span> </tal:others> </tal:many> </div>
Another common usage is to test a variable before inserting it (the first example tests for existence and truth, while the second only tests for existence):
<p tal:condition="request/message | nothing" tal:content="request/message">message goes here</p> <p tal:condition="exists:request/message" tal:content="request/message">message goes here</p>
No comments:
Post a Comment