[Zope] Learning to use a BTreeFolder2
Peter Bengtsson
peter at fry-it.com
Tue Nov 25 19:09:35 EST 2008
OOBTrees are created as attributes on zopeish objects (e.g. BTreeFolder2).
E.g.
class Stuff(BTreeFolder2):
meta_type ='Stuff'
def __init__(self, oid):
super(Stuff, self).__init__(oid)
self.people = OOBTree()
2008/11/25 Mr SZ <sk8in_zombi at yahoo.com.au>:
> Hi All,
>
> I am writing a product to manage the back end operations of users.I need to store lots of user info.My first plan was to use ZSQL but then I read about ZODB and more specifically OOBTrees and BTreeFolder2. My objective is to store user related stuff on ZODB but not litter the ZODB but to instead organize into folders. I read the test code and the BTreeFolder.py to figure out the API.
>
> I have a few doubts to clarify:
>
> In this method I tried to add two BTFs and an OOBTree:
> def test3():
> f = BTreeFolder2('sufest')
> f2 = BTreeFolder2('somefolder')
> f3 = BTreeFolder2('somefolder2')
> f._setObject(f2.id, f2)
> f._setObject(f3.id, f3)
> uniq_id = f.generateId()
> obT = OOBTree()
> obT['Auth'] = {'a':1,'b':2}
> f._setOb(uniq_id, obT)
> lst = f.objectMap()
>
> return f._getOb(uniq_id)
>
> Now the functions returns an error:
> Traceback (innermost last):
> Module ZPublisher.Publish, line 115, in publish
> Module ZPublisher.mapply, line 88, in mapply
> Module ZPublisher.Publish, line 41, in call_object
> Module Products.ExternalMethod.ExternalMethod, line 225, in __call__
> - __traceback_info__: ((), {}, None)
> Module /var/lib/zope2.9/instance/sandbox/Products/Test/Extensions/Tst.py, line 40, in test3
> Module Products.BTreeFolder2.BTreeFolder2, line 211, in _getOb
> AttributeError: 'BTrees._OOBTree.OOBTree' object has no attribute '__of__'
>
> I beleive this is because OOBTrees don't have a meta_type which the _getOb function tries to access. Enlighten me :)
>
> Other methods like objectMap and getBatchObjectListing work fine though.
>
> My question is how do we properly a store any item other than zope objects like strings,dicts or OOBTrees in a BTreeFolder2 and how to retrieve them back.
>
> Zope seems interesting to work with but at times really confuses me especially acquisition concepts.
>
> Regards,
> SZ
>
>
> " life isn't heavy enough,it flies away and floats far above action"
>
>
>
> Start your day with Yahoo!7 and win a Sony Bravia TV. Enter now http://au.docs.yahoo.com/homepageset/?p1=other&p2=au&p3=tagline
> _______________________________________________
> Zope maillist - Zope at zope.org
> http://mail.zope.org/mailman/listinfo/zope
> ** No cross posts or HTML encoding! **
> (Related lists -
> http://mail.zope.org/mailman/listinfo/zope-announce
> http://mail.zope.org/mailman/listinfo/zope-dev )
>
--
Peter Bengtsson,
work www.fry-it.com
home www.peterbe.com
hobby www.issuetrackerproduct.com
More information about the Zope
mailing list