Re: [Zope] Modifying a Dictionaries in an Extenal Method
Edward Huixquic wrote at 2005-6-7 01:11 -0500:
Since you sent your reply not to the list but to my email
That was a mistake. It should have gone to the mailing list...
I dared to respond directly, let me know if you prefer not to receive direct emails and sorry if my dare bothered you.
In principle, all Zope related messages should go to a mailing list and not to me privately...
... That is why I am passing the "REQUEST" to the External Method, as "to make it aware of the DTML variables (environment)
"REQUEST" does *not* know about DTML variables.
, actually the ones that are created from the MySQLMethod.dictionaries() So, in the future I will call directly like:
<dtml-call "MyExternalMethod(MyZSQLMethod.dictionaries())">
I am not familiar with "dictionaries" (it is in fact less efficient than the use of the result directly). But, I expect that "dictionaries" is not a method of the "Z SQLMethod" itself but instead of its result. If I am right, then you must use "MyZSQLMethod().dictionaries()".
...
Powerful but hard to learn, as you probably heard before, I am trying to grab that Zope spark...fighting against namespaces, acquisition, and other abstract Zope concepts.
Maybe, you read
<http://www.dieter.handshake.de/pyprojects/zope/book/chap3.html>
Thanks for the suggestion. Already reading it.
...... The most natural way, you can imagine: you simple call your "ExternalMethod" with this dictionary list as parameter.
<dtml-{var|call} expr="myExternalMethod(fields)">
Note that DTML performs some magic for its "name" attributes. If its value is callable, it automatically calls it. Inside an "expr" attribute, there is no such magic. This means, that you sometimes need to call explicitly (probably not in your example but sometimes...).
In your example, I understand "fields" must be preassigned to say, MyZSQLMethod.dictionaries()
I used the "fields" from your example. Whatever it is, you can pass it to an "External Method" (or other function like object). You may need to call it explicitly to get the same effect as you would get when you used it as a DTML variable, as I explained above. -- Dieter
participants (1)
-
Dieter Maurer