[ 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