Kapil and Others, Thanks for the enlightening alternatives. That's one thing about this list and Python, there's more than one way to skin an object. All my best,
not an answer to the original question... but an alternative approach
from OFS import Folder
def create_folders(self, number): ''' create a set of recursive folders with depth equal to number'''
parent = self for index in xrange(number): folder = Folder() folder.id = str(number) parent._setObject(folder, str(number)) parent = folder
Andy McKay wrote:
Try using getattr to get the object... heres a python script to do it a little more cleanly:
import string
def create_folders(self): path = '/a/b/c' # create a folder for each part of the string, nested.
for p in string.split(path, '/'): if p != '': self = create_folder(self, p)
return 'Done'
def create_folder(folder, id): try: folder.manage_addFolder(id) except: pass
new_folder = getattr(folder, id) return new_folder
----- Original Message ----- From: "Jason Spisak" <444@hiretechs.com> To: <zope-dev@zope.org> Sent: Monday, October 16, 2000 10:46 AM Subject: [Zope-dev] Recursive folders from Python
Zopists,
Yesterday I was trying to create recursive folders from DTML. I'd like to do the same from Python. Does anyonw know why this code won't create a folder within a folder. It's tells me the id is already in use, so that means it's not descending into the newly created folder to make another folder.
def create(self): for digit in range(0, 10): folder = self.manage_addFolder(str(digit), str(digit)) subfolder = self.folder.manage_addFolder(str(digit), str(digit))
Jason Spisak 444@hiretechs.com