[Zope-dev] Re: [ZODB-Dev] ZODB, Catalog and actually using it

Andreas Jung andreas@andreas-jung.com
Wed, 29 May 2002 17:12:11 -0400


I think you must call getObject() on the mybrains instance first
to get the object!

Andreas
----- Original Message -----
From: "Nicholas Henke" <henken@unholymess.com>
To: <zope-dev@zope.org>; <zodb-dev@zope.org>
Sent: Wednesday, May 29, 2002 16:05
Subject: [ZODB-Dev] ZODB, Catalog and actually using it


Hello~~
I am playing with using the Catalog class in ZCatalog along with
CatalogQuery
to create a generic object layer on top of ZODB. I can index and search til
I
am blue in the face, and I always get the correct answers. Now for the
problems...

Say I have the following obj:
class test(Persistent):
variable = 1
def function(self):
print self.__dict__

now if I do:
catalog = Catalog()
catalog.addIndex('variable', Fieldindex('variable'))
catalog.addColumn('variable')
obj = test()
catalog.catalogObject(obj, id(obj))

catalog_query = CatalogQuery(catalog, "variable==1")
results = catalog_query()
for r in results:
print r.variable  # ok
print r.getRID() # ok
print r.function # NameError

...so I can get an object (a mybrains instance )back that allows me to print
r.variable, but I cannot get r.function().
How does one do this? Is there a mapping between RIDs in the catalog and
real
objects somewhere? Do I need to do that mapping in an IOBtree (it would make
the most sense since I am using id(obj) as the uid in the catalog)? Is there
somewhere in Zope/google/web that does this?

Thanks for any help!!
Nic



_______________________________________________
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://lists.zope.org/mailman/listinfo/zodb-dev