Paul Winkler wrote:
On Wed, Dec 14, 2005 at 06:06:21PM +1300, Cameron Beattie wrote:
I am trying to get my head around representing a list in a page template.

Assume the following list:
[[61282125371L, 1, 6, 0], [61282125379L, 1, 6, 0], [61282825240L, 6, 6, 0], 
[61282125378L, 1, 6, 0], [61282125374L, 1, 6, 0]
[61282125371L, 1, 6, 0]

i.e. m is a list where each member is itself a list.

How do I get a page template to render a particular item? Assume a function 
getem returns the list.
<tal:block repeat="m python:here.getem()">
   <td tal:repeat="single m" tal:content="single"></td>

This code will produce four columns and five rows, with each populated by 
the list members. But what if I only want the first and third members in 
each case i.e. 2 columns and five rows?

I thought it would be something like tal:content="python:single[0]" but 
that gives me an unsubscriptable object error.

That's because, in your example, each time through the loop,
single is an int. Try indexing m instead.

I think all thats needed is a tal:condition (he wants to filter out rows)

1)<span tal:define="res python: context.pyTest();"   <--- returns list of lists  like [[61282125371L, 1, 6, 0], [61282125379L, 1, 6, 0], [61282825240L, 6, 6, 0]]                 tal:repeat="r1 res">
3)    <tal:span tal:repeat = "r2 r1"
4)        tal:condition="python: repeat.r2.number in (1,2,4)"
5)        tal:content="r2">
6) </tal:span>

Where 4 is not brain dead as in my example.


Zope maillist  -
**   No cross posts or HTML encoding!  **
(Related lists - )

Reply via email to