[Zope] Nested dtml tags

Tino Wildenhain tino at wildenhain.de
Tue Jun 20 10:09:21 EDT 2006


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