Formencode uses keys with . for nested dictionaries and -int for ordered lists, take a look:
http://formencode.org/Validator.html#http-html-form-input On Jun 26, 7:04 am, "Vlad K." <[email protected]> wrote: > Thanks for your reply, but the problem is there is no > request.POST("var"), there is request.POST("var[foo]") and at that point > I don't know all the possible values of "foo". I solved with with a > custom extraction function. > > While I'm at it, though, I wonder how others are solving the same > problem. In PHP there are no sequences and dicts, just one associative > array entity, so things like: > > var['a']['b'] = c > > are perfectly valid ad hoc, even if var was never used before, while > Python would complain about missing key 'a' in dict var. > > So the actual problem is this. I have a form with a table. Columns are > entity fields, rows are individual entities, just like in a database. > For a PHP backend the form would be constructed as: > > <input type="text" name="foo[1]" value="123" /> > <input type="text" name="bar[1]" value="123" /> > <input type="text" name="baz[1]" value="123" /> > <input type="text" name="gah[1]" value="123" /> > > with that being single row, entities having columns foo, bar, baz and > gah, and the value in brackets is the row ID. One solution would be: > > <input type="text" name="foo" value="123" /> > <input type="text" name="bar" value="123" /> > <input type="text" name="baz" value="123" /> > <input type="text" name="gah" value="123" /> > <input type="hidden" name="id" value="1" /> > > But I can't trust that the order given in the form is the same given > through POST and especially the same reconstructed via WebOb's multidict > entities (since Python's dicts are not ordered). > > Another solution would be to serialize the form using, say, jQuery and > do a JSON content type POST, then simply do json.loads(request.body) on > the server side, but as I said, I don't want to modify the client if I > don't have to. The best I can do is regex replace foo[id] into foo-id > for easier parsing (field.split("-")). > > Suggestions (I mean, other than using a lib or function that parses > foo[id], bar[id], ...)? > > .oO V Oo. > > On 06/25/2011 03:28 PM, Stonly Baptiste wrote: > > > > >>>> import simplejson>>> mypost = request.params.POST('var') > >>>> json.loads('[%s]' % mypost[:-1]) > > Or something like that > > > You wouldn't have to change your php to send json, python could convert it > > to json > > > Thank you, > > Stonly Baptiste > > Aston UC is now Veddio Cloud Solutions > > 954.510.9642-Phone ext.104 > > 877.357.7727-Toll Free ext.104 > > 877.403.7036-Fax > > [email protected] Email > >http://www.veddio.com-Web > > -- 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.
