Hi Tres, Thank you for the advice. Unfortunately, in Zope 2.7.1, in ObjectManager.py there is no method named getObject(). I searched for getObject in other files, but only got a hit in App/Extensions.py which does not seem appropropriate. In ObjectManager, I also found the method _getOb(), but I'm not sure on the wisdom of using this method. I do have a simple work around that is not too elegant, but will work, so please don't spend much time on this issue. However, if you have a quick response, please let me know since your solution would be of more general use to me in the future. Jim Tres Seaver wrote:
Jim Anderson wrote:
I have a problem working with acquisition. I'm working with python classes in Zope 2.7.1. These class are zope objects.
My class structure has class F derived from Folder and class I derived from SimpleItem.
An instance of I is created in class F and then a call to setObject is made with the id and handle to the instance of I.
When I bring up zope, the instance of I shows up in the folder, as expected.
However, if I execute self.absolute_url_path() in I, it does not return a full path, only the id of the instance object. When I step through the absolute_url_path source code, I find that the instance of I does not have an attribute for self.aq_parent. I was surprised at this because I is a SimpleItem which in turn is derived from Acquisition.
Am I mistaken in my expectation that instance I would have an aq_parent that is the folder that contains it?
It sounds as though you still have the original, unwrapped I object. You neet to get your I object back out of your F folder *after* storing it. E.g.:
f = F(...) i = I(...) f._setObject('name', i) i = f.getObject('name) # now it is wrapped
Tres.