Tutti gli esempi di forma web.py sono nel seguente formato (da webpy.org):Come riempire dinamicamente una selectbox/dropdownbox in un modulo usando web.py?
myform = form.Form(
form.Textbox("boe"),
form.Textbox("bax",
form.notnull,
form.regexp('\d+', 'Must be a digit'),
form.Validator('Must be more than 5', lambda x:int(x)>5)),
form.Textarea('moe'),
form.Checkbox('curly'),
form.Dropdown('french', ['mustard', 'fries', 'wine']))
class index:
def GET(self):
form = myform()
# make sure you create a copy of the form by calling it (line above)
# Otherwise changes will appear globally
return render.formtest(form)
def POST(self):
form = myform()
if not form.validates():
return render.formtest(form)
else:
# form.d.boe and form['boe'].value are equivalent ways of
# extracting the validated arguments from the form.
return "Grrreat success! boe: %s, bax: %s" % (form.d.boe, form['bax'].value)
Non voglio per riempire la casella a discesa (form.Dropdown nell'esempio di cui sopra) statica quando si dichiara il modulo, ma nel metodo GET/POST utilizzando le voci recuperate da una tabella del database quando viene chiamata la pagina.
Ho cercato per un paio d'ore, ma non riesco a trovare da nessuna parte un suggerimento (google, webpy.org, gruppi di google)
Non credo che sia opportuno applicare gli input del form in questo caso (ma potrebbe essere utile in qualche altra situazione). Per questo caso particolare, suggerisco di creare 'Dropdown' con' args = [] 'e quindi impostare' args' nella copia del modulo. –