[Zope] deleting while iterating over ObjectManager

Oliver Bleutgen myzope@gmx.net
Mon, 21 Oct 2002 20:38:46 +0200


John Hunter wrote:

> Is it safe to delete instances while iterating over the contents of an
> ObjectManager instance, as in:
> 
> for item in folder.objectValues():
>   if some_condition: 
>     folder.manage_delObjects(item.getId())
>     break
>   do_something(item)
> 


1. store the list beforehand, just to be sure.
2. use objectItems since it contains the (id, object) tuple you need

item_list = folder.objectItems()
for item in item_list:
   if some_condition:
     folder.manage_delObjects(item[0])
     break
   do_something(item[1])

 
HTH,

oliver