[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