Philip Jenvey wrote: > > On May 16, 2007, at 7:51 AM, Graham Stratton wrote: > >> >> Hi all, >> >> I see there's discussion about the issues with the @validate decorator >> in the tracker. I've come across a few problems myself in the last >> few weeks, so hopefully I can contribute here: >> >> - In order to use multiple fields, you need to set variable_decode to >> True. This is probably fair enough, and it probably ought to be the >> default. It does have other side effects for field names containing >> '-' or '.' Making variable_decode True by default is certainly not a >> backwards-compatible change. >> >> - In order to use htmlfill with multiples, params also needs to be >> mapped from a MultiDict. At present htmlfill called from the decorator >> only selects the first value for fields with multiple values. I think >> this can be fixed by passing decoded instead of params to htmlfill. > > Decoded as in variable_decode=True again, right? > > Defaulting variable_decode to True was brought up a long time ago but it > never happened. I don't think everyone (at least I didn't) realized > there were so many cases in which formencode doesn't work with > MultiDicts unless variable_decode is enabled. > > The fact that variable_decode=True fixes the MultiDict problems is more > of a coincidence. The variable_decode function is supposed to > flatten/de-nest a normal dictionary with '-' and '.' separators, the > fact that it correctly flattens a MultiDict is almost a side effect. > > The flattening it does is essentially the same result as having called > MultiDict.mixed(). validate passing MultiDict.mixed() to formencode > would be an even better solution than defaulting variable_decode=True. > The qualm I have with doing any of these is that Pylons/Paste users that > aren't using the validate decorator need to know to use > MultiDict.mixed() or variable_decode=True. > > It's reasonable to require variable_decode=True if you're using the '-' > and '.' nesting syntax. But if you're not, I'd rather MultiDicts Just > Worked(tm). > > I spoke to Ian (who I've CCed) about MultiDicts and formencode a while > ago. I got the impression from him that he wanted MultiDicts to Just > Work(tm) with formencode. Ian, what's your opinion on all this?
Yeah, I think that's reasonable. Really FormEncode is intended to work with, um, params.mixed()? FormEncode could just check for that attribute in schemas and call it if it's there. Ian --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/pylons-discuss?hl=en -~----------~----~----~----~------~----~------~--~---
