Hello, I am trying to use the below code (from zopelabs) to update my existing class instances. When I run the python script to invoke the external method, I get an Attribute error on REQUEST. I have no idea why, or how to fix - and, I don't really understand the first part of the external method that has references to REQUEST and sets up the value of root. Any help appreciated... code/comments from zopelabs recipie is: ------------- #create a file in $ZOPE/Extensions called schema.py def addPropertyToObjectType(self, meta_type, property, prop_type=None): """ does a find for all meta_type's and then attaches this proeprty to them if they dont already ahve it """ root=None if self.REQUEST.has_key('VirtualRootPhysicalPath'): root = self.REQUEST.VirtualRootPhysicalPath else: root = ('',) root = self.restrictedTraverse(root) for result in self.ZopeFind(root, obj_metatypes=(meta_type, ), search_sub=1): id, o = result[0], result[1] if not hasattr(o, property): setattr(o, property, prop_type) #create a External Method id:addPropertyToMetaType #module = schema.py and function = addPropertyToObjectType #Now create a (Script)Python called add_body_text context.addPropertyToMetaType('DTML Document', 'my_CustomProperty') return 'fin' -------------- thanks, John S. __________________________________ Do you Yahoo!? New and Improved Yahoo! Mail - 100MB free storage! http://promotions.yahoo.com/new_mail