[ZPT] TALES: how to access a list?

Tom Deprez Tom Deprez" <tom.deprez@uz.kuleuven.ac.be
Thu, 4 Oct 2001 15:35:32 +0200


Just a guess, since I'm on the learning curve of ZPT myself, but :

doesn't repeat/num/number gives you the number you need to have?

Tom.




----- Original Message ----- 
From: "Raymond Penners" <raymond@duologix.nl>
To: <zpt@zope.org>
Sent: Thursday, October 04, 2001 3:20 PM
Subject: [ZPT] TALES: how to access a list?


> Hi,
> 
> I am definately in need of a Zope/ZPT guru here. I've spent all day 
> trying, without any luck.
> 
> Question:
> =========
> Suppose I have a variable "mylist", which is, of course, of type list. 
> How do I access elements of that list through tales?
> 
> "request/form/mylist/0" does not seem to work.
> 
> Background:
> ========
> What I want to accomplish is the following: I have a form with a number 
> of input fields, whose values are recorded as a list:
> 
> <li tal:repeat="num python:range(10)">
>   <input type="text" name="mylist:list" value=""
>     tal:attributes="value FIXME">
> </li>
> 
> Here, FIXME is some TALES expression that inserts the value mylist[num]. 
> If mylist[num] is not available (i.e. len(mylist)<=num), it should 
> insert the empty string.
> 
> Approaches so far:
> ==================
> 1) use "python:here.REQUEST.form.get('myval')[num]" for FIXME.
> This almost works, except that an exception occurs when num is larger 
> than the length of myval.
> Since the "python:" expression is a one-liner, I don't see how I can use 
> a try/catch construction here.
> 
> 2) I've tried stuff like:
> - request/form/myval/0|nothing
> - python:here.path('request/form/myval/%d' % num)
> 
> 3) Another attempt:
> python:test(here.path('request/form/myval') and 
> len(here.path('request/form/myval'))>num, 
> here.path('request/form/myval')[num], '')
> 
> Why this fails is beyond me. It seems that for "python:test(cond,a,b)" I 
> can only use simple values for "a" and "b", and not a complete python 
> expression like above. If I do so, I get all sorts of errors.
> 
> Help, anyone?
> 
> PS: It's a bit off-topic for this list, but if you also happen to know 
> what the PythonScript equivalent for the following DTML is: "<dtml-var 
> index_html>", please let me know. I've tried stuff like "return 
> container.documument_src()", but failed... thanks.
> 
> 
> _______________________________________________
> ZPT mailing list
> ZPT@zope.org
> http://lists.zope.org/mailman/listinfo/zpt