[Zope] Nested dtml tags
Jonathan Bowlas
me at jonbowlas.com
Tue Jun 20 10:26:32 EDT 2006
Thanks for everyone's help. I may be able to sort this now.
-----Original Message-----
From: Tino Wildenhain [mailto:tino at wildenhain.de]
Sent: 20 June 2006 15:09
To: me at jonbowlas.com
Cc: 'Jaroslav Lukesh'; zope at zope.org
Subject: Re: [Zope] Nested dtml tags
Jonathan Bowlas schrieb:
> Hmm, this doesn't appear to work.
>
> Let me explain what I'm trying to do.
>
> I have a Z SQL Method called selectmoduleinfoMethod that contains the SQL:
>
> SELECT * FROM RECMGR_EL_MODULE_Query WHERE MODCODE = <dtml-sqlvar
> MODCODE type="string">
You should never use SELECT * in production code. Better state the
name of the columns you really want there. (Thus fixing their name)
One simple form would be:
SELECT modlevel,modname,modlevel=<dtml-sqlvar modlevel> as selected
FROM foobar WHERE modcode = <dtml-sqlvar modcode type=string> ...
Then you could use the result of your ZSQL Method more or less directly,
in ZPT for example:
<select name="MODLEVEL"> (size="1" is default anyway ;)
<option tal:repeat="mod here/yourZSQLMethod"
tal:attributes="value mod/modlevel; selected mod/selected"
tal:content="mod/modname">123</option>
</select>
In Python Script, it should work like this:
MODLEVEL=request.form.get('MODLEVEL','') # make sure you get the types
correctly
return [dict(x,selected=x.modlevel==MODLEVEL) for x in
context.selectmoduleinfoMethod()]
this works with your ZSQL method as it is (more or less - adjust the column
names)
and can be used like the one above.
If you like ugly templates and a lot of writing you can translate the
example to DTML - this is left to the reader ;)
Regards
Tino
More information about the Zope
mailing list