[Zope-dev] z3c.form: data manager for PersistentDict/PersistentMapping

Stephan Richter srichter at cosmos.phy.tufts.edu
Mon Jul 13 10:49:23 EDT 2009


On Saturday 11 July 2009, Michael Howitz wrote:
> z3c.form.datamanager.DictionaryField is a data manager which is  
> registered for fields on a dict. In its __init__ it checks whether the  
> data object is an instance of dict. So this data manager does neither  
> work for UserDict nor PersistentDict/PersistentMapping.
> I'd like to change this but there are two possibilities and I'm not  
> sure which is the best one:
>
> 1.) Add a subclasses of DictionaryField which is registered for  
> UserDict and which checks whether the data object is an instance of  
> UserDict.
>      (PersistentDict and PersistentMapping are subclasses of UserDict.)
>
> 2.) Register DictionaryField for  
> zope.interface.common.mapping.IMapping. This might have a problem as  
> neither UserDict nor PersistentDict/PersistentMapping seem to provide  
> this interface. (Why?)

I looked at this recently and the reason is that for containers we did not 
usually want the dictionary field data manager, because we usually want the 
regular instance based one.

I am okay to add PersistentDict and PersistentMapping to the list. I am 
already feeling unsure about UserDict, because people might want the instance 
version instead. It is better to register the adapter for the specific cases of 
your application.

Regards,
Stephan
-- 
Entrepreneur and Software Geek
Google me. "Zope Stephan Richter"


More information about the Zope-Dev mailing list