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"
_______________________________________________
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )

Reply via email to