Thomas Guettler wrote:
Hi!
I had problems to delete all entries from a BTree. The working code is now:
(self.objects is a BTreeFolder2)
def deleteAllObjects(self): "docstring" keys=[] for k in self.objects.keys(): keys.append(k) len_keys=len(keys) i=0 for k in keys: self.objects[k].deleteObject() i+=1 ret=[] ret.append(self.standard_html_header()) ret.append("All objects where deleted %s %s" % (len_keys, i)) ret.append(self.standard_html_footer()) return ''.join(ret)
This does not work: for k in self.objects.values(): k.deleteObject() # k gets deleted from self.objects since deleting while iterating does not work.
This code does not look very nice. Is there a better way? It would be nice to use just on loop.
Would you also go without any explicit loops? ;) self.manage_delObjects(self.objectIds()) HTH, oliver