[ 
http://issues.apache.org/jira/browse/MODPYTHON-38?page=comments#action_65494 ]
     
Nicolas Lehuen commented on MODPYTHON-38:
-----------------------------------------

We could also solve the problem by modifying the FieldStorage and Session 
constructors, so that if the req object already has a 'form' or 'session' 
attribute, respectively, we just return its value :

class FieldStorage(object):
    def __new__(cls,req,*args,**kw):
        try:
            return req.form
        except AttributeError:
            req.form = object.__new__(cls)
            return req.form

    # the rest of the object is as before

This way, we can build util.FieldStorage(req) as many time we want, we will 
always get the same instance.

> Passing req.form into psp.PSP().
> --------------------------------
>
>          Key: MODPYTHON-38
>          URL: http://issues.apache.org/jira/browse/MODPYTHON-38
>      Project: mod_python
>         Type: Improvement
>     Versions: 3.1.4
>     Reporter: Graham Dumpleton
>     Priority: Minor

>
> When calling psp.PSP() explicitly to render PSP pages, it will internally 
> setup
> req.form if it determines that the form is accessed by the PSP page.
> Problem is that if you are wanting to trigger psp.PSP() from a publisher 
> function
> any form parameters have already been processed and req.form created. For a
> POST request this is problematic as in doing this it will have consumed all 
> the
> content of the request.
> This means that when the form is processed a second time by psp.PSP(), it will
> find no request content. Thus, the PSP page will only be able to make use of
> GET form parameters and not POST form parameters.
> It would be an improvement if psp.PSP() allowed a instance of 
> util.FieldStorage
> which has previously been created to be passed in through the "form" parameter
> of the constructor. Ie.,
>     template = psp.PSP(req,filename=path,vars=settings,form=req.form)
>     template.run()

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to