[Zope] ZPT condition attribute question
Harry Wilkinson
harryw@nipltd.com
Tue, 21 May 2002 13:37:33 +0100
On Tuesday 21 May 2002 1:04 pm, Mark A. Lilly wrote:
> hello,
> i have an input tag, and i want to set the value attribute to either a
> defined value or a blank string. my python expression either returns a
> single instance or an empty list.
>
> right now, i am using two Input tags in tandem. Only one remains after
> rendering b/c one is removed. my question, is it possible to write this so
> i don't have to have nearly identical Input tags all over my page?
>
> thanks,
> mark
>
>
> <input type="text" name="input_name"
> tal:condition="task/task_name | nothing"
> tal:attributes="value task/task_name" />
>
> <input type="text" name="input_name"
> tal:condition="not:exists:task/task_name"
> tal:attributes="value string:hi" />
>
The obvious way to do this is something like:
<input type="text" name="input_name"
tal:attributes="value task/task_name | string:hi" />
but I have tried that before and it doesn't seem to work, as I presume you
have already discovered. My solution to this is to use a Python 'or' instead
of the ZPT '|' character to specify a default, and make the whole thing a
Python expression:
<input type="text" name="input_name"
tal:attributes="value python:task['task_name'] or 'hi'" />
That's not quite as pretty as the pure TAL style but it seems to work.
Harry