Aggiornare i valori a una form z3c.form
z3c.form è una libreria capace di costruire da codice le form web di cui abbiamo bisogno in ambiente python/zope.
Molti pacchetti più specializzati ne fanno uso, anche in ambito Plone, mediante plone.z3cform. Per iniziare ad utilizzare plone.z3cform suggerisco di usare il tutorial scritto da Daniel Nouri su plone.org: http://plone.org/documentation/how-to/easy-forms-with-plone.
Fatto il preambolo, ecco il problema: come impostare dei valori nei widget del form prendendoli magari da una querystring impostata?
la mia soluzione, mettere nella classe che eredita da form.Form questo metodo:
def update(self): # lascio costruire i widget
self.updateWidgets() # ottengo i valori da preimpostare dalla querystring for k,v in self.request.form.items():
wdg = self.widgets.get(k)
if wdg:
wdg.value = v
# aggiorno il widget se ne ha bisogno per il rendering
if IChoice.providedBy(wdg.field):
wdg.update()
# aggiorno le action e le eseguo
self.updateActions()
self.actions.execute()
Che ne dite? C’è un modo più pulito di farlo?

