Jean-Philippe Barrette-LaPierre
jpbarrette at savoirfairelinux.net
Wed Sep 1 17:09:29 EDT 2004
I already sent the question but nobody answered, so I'm sending this question again. if I have a form like this: <form action="form/test" method="POST"> <input type="text" name="customer[test]"/> <input type="submit"/> </form> and if I have a form.py file like this: --------------------------------- def test(customer, **kargs): print customer ---------------------------------- if I submit the form I obtain this: ---------------------------------------------------------------------- Mod_python error: "PythonHandler mod_python.publisher" Traceback (most recent call last): File "/usr/lib/python2.3/site-packages/mod_python/apache.py", line 299, in HandlerDispatch result = object(req) File "/usr/lib/python2.3/site-packages/mod_python/publisher.py", line 136, in handler result = util.apply_fs_data(object, req.form, req=req) File "/usr/lib/python2.3/site-packages/mod_python/util.py", line 361, in apply_fs_data return object(**args) TypeError: test() takes exactly 1 non-keyword argument (0 given) ---------------------------------------------------------------------- If I remove the customer argument, I can see that kargs is this: {'customer[test]': 'myValue', 'req': <mp_request object at 0x4075fa18>} We can see that form arrays are not treated as they should. I wrote a function that will transform those arguments: {'customer[test]' : 'myValue1', 'customer[test2][1] : 'myValue2', 'customer[test3][1][3] : 'myValue3', 'test' : 'myValue4'} into: {'customer' : {'test' : 'myValue1', 'test2' : {'1' : 'myValue2'}, 'test3' : {'1' : {'3' : 'myValue3'} } }, 'test' : 'myValue4'} Then those values will be almost ready to be passed to the apply_fs_data function and the form function will receive correctly its arguments. What do you think of this? -- Jean-Philippe Barrette-LaPierre Maintener of cURLpp -- Jean-Philippe Barrette-LaPierre Maintener of curlpp
|