Hi Dieter, Hi All, AttributeError / getPhysicalRoot has gone changing index_obj = getattr(container.aq_base, 'index_html', None) to if hasattr(container.aq_base, 'index_html'): index_obj = getattr(container, 'index_html') else: index_obj = None I thought they were equivalent -- they're not !!! Can somebody confirm that (inclusive reasons)? Gruss, Gregoire ----------------------------------------------------------------------- <CODE working="correct"> def manage_afterAdd(self, item, container): """ simplified code called after instanation of object A (self) in folder P (container) """ if hasattr(container.aq_base, 'index_html'): index_obj = getattr(container, 'index_html') if index_obj.meta_type == self.meta_type: # P has an object I (index_obj) of the same type as A is index_obj.addToCollection(container, self.getId()) def addToCollection(self, container, id): """ simplified code in the same class called on index_html object """ # this copies object A (container/id, just instanated before # manage_afterAdd!!!) to object I (self, same as index_obj above) cb = container.manage_copyObjects(id) # OK self.manage_pasteObjects(cb) # raises ERROR (same as before) </CODE> At 22:16 24.09.2002 +0200, Dieter Maurer wrote:
=?iso-8859-1?Q?Gr=E9goire?= Weber writes:
... def addToCollection(self, obj): ... self.manage_pasteObjects(context.manage_copyObjects(id)) # raises ERROR below ------------------------------------------------------------------------- Error Type: AttributeError Error Value: getPhysicalRoot
Traceback (innermost last): File D:\prog\zope_test\lib\python\OFS\CopySupport.py, line 144, in manage_pasteObjects (Object: index_html) AttributeError: (see above) This means, "self" above, does not have a method "getPhysicalRoot".
This may be because it is only partially acquisiton wrapped.
Usually, you should check for attribute existence with "aq_base" but access without the "aq_base".
I.e., you should use the following idiom:
if hasattr(aq_base(obj),'some_attribute'): my_attribute= getattr(obj,'some_attribute') ...
Dieter
_____________________________________ Grégoire Weber mailto:gregoire.weber@switzerland.org