Tất cả các ví dụ hình thức web.py có định dạng sau (từ webpy.org):Cách điền động hộp chọn/hộp thả xuống trong biểu mẫu bằng cách sử dụng 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)
Tôi không muốn để điền vào hộp thả xuống (form.Dropdown trong ví dụ trên) tĩnh khi tuyên bố biểu mẫu, nhưng trong phương thức GET/POST sử dụng các mục được lấy ra từ một bảng cơ sở dữ liệu khi trang được gọi.
tôi đã tìm kiếm một vài giờ nhưng không thể tìm thấy một gợi ý bất cứ nơi nào (google, webpy.org, nhóm google)
Tôi không nghĩ rằng nó là tốt để vá đầu vào của hình thức trong trường hợp này (nhưng nó có thể có ích trong một số tình huống khác). Đối với trường hợp cụ thể này, tôi đề nghị tạo 'Dropdown' với' args = [] 'và sau đó thiết lập' args' của trình đơn thả xuống trong bản sao của biểu mẫu. –