Re: [Zope] can't delete most recently added key from a Persistent dictionary
Hello again. I changed self.fields to be a PersistentMapping() rather than a dictionary. This did not help - and I was sure that it woudl :( Please help! ^Roman
"RM" == Roman Milner <roman@speeder.com> writes:
RM> Hello. I have a problem trying to use the Persistent mixin RM> class. I have a dictionary attribute that holds configurable RM> fields. The fields are added like this: RM> def store_new_fields(self, REQUEST): f = self.fields if RM> hasattr(REQUEST, 'abstract_p'): RM> f[string.strip(REQUEST.new_item_name)] = {'type': RM> REQUEST.dtype, 'abstract_p': REQUEST.abstract_p} else: RM> f[string.strip(REQUEST.new_item_name)] = {'type': RM> REQUEST.dtype, 'abstract_p': 0} self.fields = f RM> I then delete items thusly: RM> def del_fields(self, the_fields): f = self.fields if RM> type(the_fields) == type(""): del(f[the_fields]) else: for RM> fname in the_fields: del(f[fname]) self.fields = f RM> This mostly works fine except the most recently added new RM> field can not be deleted. The del() call does not raise an RM> error but when I look at self.fields.keys() after calling RM> del_fields() on the most recently added field - it still RM> exists. RM> I'm sure there is something with the persistence stuff that I RM> am missing. Any help would be greatly appreciated. RM> Thanks, ^Roman RM> _______________________________________________ Zope maillist RM> - Zope@zope.org http://www.zope.org/mailman/listinfo/zope RM> (To receive general Zope announcements, see: RM> http://www.zope.org/mailman/listinfo/zope-announce RM> For developer-specific issues, zope-dev@zope.org - RM> http://www.zope.org/mailman/listinfo/zope-dev )
participants (1)
-
Roman Milner