Dear all

As it took me a while to hunt down this one, I thought I'd share it here (and 
in the list archive):

Using __setattr__ on a persistent object with the old-style object idiom 
self.__dict__[name] = value to actually set attribute values causes self._p_oid 
never to be set. This leads to somewhat obscure failures further on, such as in 
fsIndex, because None is passed as the oid (without any assertion along the 

After changing __setattr__ to use 
persistent.Persistent.__setattr__(self,name,value), everything works fine 

Best regards, Martin Gfeller

For more information about ZODB, see the ZODB Wiki:

ZODB-Dev mailing list  -

Reply via email to