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.

Entrepreneur and Software Geek
Google me. "Zope Stephan Richter"
Zope-Dev maillist  -  Zope-Dev@zope.org
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope )

Reply via email to