I am trying to convert a rather complex application to use form2 instead of
form: I think their design can simplify development. I am starting from the
example published in http://mail.mems-exchange.org/pipermail/quixote-
users/2003-October/001998.html.
My app expects a request like http://localhost/esp/xpr/edit?id=247. In xpr.ptl,
the edit method fetches the record 247 from the database and use its data to
populate the form. But then
if not form.is_submitted():
return render()
this render is never executed because globals()['_publisher'].get_request().form
== {'id': '247'}, so form.is_submitted() == 1 :-/
I solved this by defining
def is_submitted(self):
"""() -> bool
Return true if a form was submitted.
"""
r = get_request()
return r.get_environ('REQUEST_METHOD') == 'POST' and bool(r.form)
in my form subclass, but this wouldn't help if the form were generated by
another form...
Am I wrong? Maybe the tipical usage for form2 is different from the "if not
form.is_submitted(): return render()" pattern shown in that example?
Another question: what is the best way to populate the form before rendering it?
I can read it with a dict protocol, but how should I write control values?
Bye
--
Daniele Varrazzo varrazzo@unisi.it
Dipartimento di Biologia Molecolare
Universita' di Siena
Via del Capitano, 15 53100 Siena (Italy)