May some one give me a light about binding Variables in Zope? Inside a python script, when should i use context.xxx or container.xxx ? On the zope book, page 136 there is: Context The Context binding defaults to the name context. This variable refers to the object that the script is called on. Ok! So if i call a python script inside a DTML Method, the context is the DTML method, if i call the script directly by its URL the context would be the directory, right? Sorry, if it sounds to basic, but since i am a beginner i am really confused. Thanks a lot for your time and cooperation. -- A billion here, a couple of billion there -- first thing you know it adds up to be real money. -- Senator Everett McKinley Dirksen
Gustavo Vieira Goncalves Coelho Rios writes:
May some one give me a light about binding Variables in Zope?
Inside a python script, when should i use context.xxx or container.xxx ?
On the zope book, page 136 there is:
Context The Context binding defaults to the name context. This variable refers to the object that the script is called on.
Ok! So if i call a python script inside a DTML Method, the context is the DTML method, if i call the script directly by its URL the context would be the directory, right? No.
Acquisition is quite difficult. So difficult that even the Zope Book Editors sometimes get it wrong (or make didactical simplifications). When you access a Python Script, you access it through some object, e.g. in the form object.script The acquisition magic makes of this script.__of__(object) "object" is called the "context" or "parent". Inside the script "context" in bound to this "object". In your example, the DTML method is not used for lookup. The context, therefore, is not the DTML object but the first object on the DTML namespace that actually knows about the script. Now to "container": The script is somewhere in the site hierarchy. The "container" is the container that contains the script. Unless the script is acquired, "context" and "container" are the same. A small example -- the following site structure: F/ script F_sub/ method: ... <dtml-var script> ... In this case, "context" is "F_sub" and "container" is "F". More info on acquisition in URL:http://www.dieter.handshake.de/pyprojects/zope/book/chap3.html Dieter
participants (2)
-
Dieter Maurer -
Gustavo Vieira Goncalves Coelho Rios