|
David Bear
David.Bear at asu.edu
Tue May 23 23:31:04 EDT 2006
On Tue, May 23, 2006 at 11:17:45PM -0400, Graham Dumpleton wrote:
> David Bear wrote ..
> > >From the manual, I don't understand the following statement:
> > '''
> > Since a FieldStorage can only be instantiated once per request, one
> > must not attempt to instantiate FieldStorage when using the Publisher
> > handler and should use Request.form instead.
> > '''
> >
> > I've been using publisher as a dispatcher to select the next psp to
> > serve. Does the above statement imply that I cannot do this? Where is
> > Request.form define? is Request not the same as req?
>
> Add a argument called "req" to your published function and then
> access "req.form".
>
> def index(req):
> form = req.form
>
okay. thats what I thought I could do. however, the paragraph from the
manual tripped me up.
> 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?
>
> 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.
>
> Graham
--
David Bear
phone: 480-965-8257
fax: 480-965-9189
College of Public Programs/ASU
Wilson Hall 232
Tempe, AZ 85287-0803
"Beware the IP portfolio, everyone will be suspect of trespassing"
|