zope acquistion

John Hunter jdhunter at ace.bsd.uchicago.edu
Fri Jun 18 11:05:04 EDT 2004


I know this post is better on the zope mailing list (in fact I posted
it there).  But for some reason my posts there are being help for days
before getting through and I'm hopeful the good folks on this list
will have an answer for me!

I have a zope containment hierarchy

  base/somefolder/myobj
  base/other

base, somefolder, myobj, and other are all instances of a MyFolder
class which is derived from Folder.  MyFolder is a simple extension of
Folder that limits the allowed meta classes.

I would like to acquire the 'other' folder from a myobj instance using
the python API.  Ie, I have a class method in which I need to be able
to do

  def somemethod(self, someinstance):
       otherFolder = acquisition_magic(someinstance, 'other')

where I know someinstance is a MyFolder instance which is either base
itself, is contained in base (possibly deep in the tree).  Ie, I would
like this method to work if someinstance is one of base, somefolder,
or myobj.

Since all of these instances derive from Acquisition.Implicit via
ObjectManager, I think I should be able to do this.

I thought 

from Acquisition import aq_get, aq_acquire, aq_parent

  def somemethod(self, someinstance):
      folder = aq_acquire(someinstance, 'other')

would do it for me, but this raises an AttributeError when passed a
myobj instance.

Thanks!
JDH

zope 2.7




More information about the Python-list mailing list