On Mon, 18 Oct 1999, Johan Carlsson wrote: Johan - I am not very familiar with ZODB (at least the new version) source code but here is what I remember.
My questions!
Is this correct to do this or can I get my self in trouble doing direct reference in this way?
You will eventually ;-) Especially if your objects are not Zope objects that follow the Zope management interface.
And what does the _p_changed.
setting _p_changed notifies ZODB that the relevant object has changed status and takes the neccessary steps to save it etc. You might need it in situations where changes to the object are not registered automatically by ZODB. For instance, lets suppose your object has a mutable attribute mylist, then: self.mylist.append(1) will not be registered by the ZODB, whereas: tmp=self.mylist tmp.append(1) self.mylist=tmp will be registered as ZODB intercepts the __getattr__ call. In the former case you will need to set _p_changed manually. Pavlos