[
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