
mh at gocept
Jul 13, 2009, 3:58 AM
Post #3 of 6
(736 views)
Permalink
|
|
Re: z3c.form: data manager forPersistentDict/PersistentMapping
[In reply to]
|
|
Am 12.07.2009 um 01:46 schrieb Roger Ineichen: > Hi Michael > >> Betreff: [Zope-dev] z3c.form: data manager >> forPersistentDict/PersistentMapping >> >> Hello, >> >> 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.) > > I think this is the right solution I think so, too, but I was not sure. > because there are many > places in zope which do not work if a PeristentDict or > PeristentList is given instead of a simple dict or list > type. > > I'm not sure but I guess not even the zope.schema validation > implementation does this part correct for list or dict fields. This is another problem. z3c.form.datamanager.DictionaryField sets the value directly on the dict, so I'd like to use a PersistentMapping instead of a dict to get the persistency stuff for free. I use the PersistentMapping to store the schema values, as I need to keep them in the session. Yours sincerely, -- Michael Howitz · mh [at] gocept · software developer gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany http://gocept.com · tel +49 345 1229889 8 · fax +49 345 1229889 1 Zope and Plone consulting and development _______________________________________________ Zope-Dev maillist - Zope-Dev [at] zope 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 )
|