[mod_python] clarity on request.form

Graham Dumpleton grahamd at dscpl.com.au
Wed May 24 01:03:51 EDT 2006

Time for a couple more questions. :-)

On 24/05/2006, at 1:55 PM, David Bear wrote:

>>> Unfortunately PSP doesn't play too nice with publisher as far as
>>> form creation and will create its own if you access "form" from
>>> inside PSP page. If request is a GET request, although redundantly
>>> created, the form will still work. If a POST request though, there
>>> will be no fields as publisher already consumed it.
>> So, in order to pass req.form to a psp, I would need to copy it to
>> some object? simple
>>    thisform = req.form
>>    vars = thisform
>>    return psp.PSP('somepsp.html', vars)
>> won't work? or will the assignment make a copy?
> I just tried
>     myform = copy.deepcopy(req.form)
> and it failed..
> where is req.form documented? I'm looking for its methods.
>>> The work around for this is to use something like:
>>>     page = psp.PSP(.....)
>>>     page.run({"form": form})
>>>     ...
>>> There was discussion about having PSP understand convention of  
>>> req.form
>>> being populated by publisher and use it if it exists, but no  
>>> consensus
>>> was reached on whether it was a good idea or not.

You don't need to make a deep copy. The only thing wrong with what  
you had is
that vars has to be a dictionary.

    thisform = req.form
    vars = { "form": thisform }
    return psp.PSP('somepsp.html', vars=vars)

Then just access methods of form object (ie., FieldStorage) through  
"form" in PSP
just like you would normally if using FieldStorage object. Eg.




More information about the Mod_python mailing list