----- Original Message ----- From: "Ferhat Ayaz" <[EMAIL PROTECTED]>
To: <zope@zope.org>
Sent: Saturday, September 02, 2006 7:40 AM
Subject: [Zope] iterating dictionaries with dtml-in


Hi,
I know it's a silly question. But I was not able to
find an example for this:

I have a list of dicts like
[
{'name':'John','age':27},
{'name':'Marc','age':17},
{'name':'Susanne','age':19}
]

Now I want to iterate each 'name' like
<select>
<option>John</option>
<option>Marc</option>
<option>Susanne</option>
</select>

I want to do this with DTML.

<select>
<dtml-in getDicts>
<option>
        HOW CAN I PUT the keys 'name' HERE ????
</option>
</dtml-in>
</select>
(getDicts returns the above list of dictionaries)

If getDicts returns a list of python dictionaries then you are going to require an outer loop (to run thru the list) and an inner loop (to run thru the keys of the current dictionary). Something like this will get you going in the right direction:

<dtml-let dictList="getDicts">
   <dtml-in dictList prefix=aDict>
       <dtml-in "aDict_item.keys()">
<dtml-var sequence-item>, <dtml-var "aDict_item[_['sequence-item']]">
       </dtml-in>
   </dtml-in>
</dtml-let>


However, it would be much easier to change your getDicts routine to format the data you need for your OPTION statements, instead of extracting this information via dtml.

hth

Jonathan


_______________________________________________
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope-dev )

Reply via email to