Re: [Zope] sql query results -> DTML method problem
"Manuel Amador (Rudd-O) writes:
#8 <dtml-in expr=\"findClassTitle(code=52.139)\">
RING: dont do that, dtml wont work in python namespace instead, remember that in python namespace all vars present in dtml namespace are inherited. I do not see a reason, why not to use this (except, that " should not be escaped, of cause).
do this: <dtml-in expr=\"findClassTitle(code=_.(\'class_code\'))\"> the __.() construct is required since underscore arent allowed in python variable names. if the var was called classcode, you could do "_" are allowed in Python names. They are treated in the same way as a letter.
DTML restricts the use of "_": A name must not *START* with an "_" (unless it is the special name "_"). Inside name, you can use "_" freely.
<dtml-in expr=\"findClassTitle(code=classcode)\"> dats it. That said, you can also use: <dtml-in expr="findClassTitle(code=class_code)">
<dtml-in expr=\"findClassTitle(code=<dtml-var class_code>)\"> *** syntax error I agree with Manuel: you cannot nest DTML. And it is this nesting, that triggered his "RING: do not do that!"
Use: <dtml-in expr="findClassTitle(code=class_code)"> I.e. you can simply use the name of the variable. Manuel is right, too, that DTML allows much more characters in names than Python does. If you have a name with a character forbidden in Python names, such as e.g. a "-", then you can use "_[name]" or "_.getitem(name)" (as Manuel said). It is only, that "_" (unlike "-") is allowed in Python names. Dieter
participants (1)
-
Dieter Maurer