def __eq__(self, other):
if isinstance(other, <name of my class>):
if hasattr(other,"_p_oid") and other._p_oid != None
and (other._p_oid == self._p_oid):
return True
else:
return False
and now can compare objects for equality after the (Twisted)
client edits them and sends them back.
You can shorten that to
def __eq__(self, other):
return aq_base(self) is aq_base(other)
Heh, good point.
I assume you're referring to repacing just "isinstance(other, <name
of my class>)"? Actually, to be honest I don't even know what
Acquisition based classes are, so I'm probably not using them. I'm
just subclassing Persistent
And you can ditch the aq_base if you don't use acquisition-based
classes.
(or don't have proxies generally--Zope 3 has a number of them, for
instance.)
(this wouldn't work if you had the same persistent object from
different connections...but don't go there!)
Don't worry, I'm happy enough just going this far!
Thanks all for your great and fast help! I've struggled with this on
and off for a couple of days (and it's 4am).. what a relief!
Robert
_______________________________________________
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/
ZODB-Dev mailing list - ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev