gpt4 book ai didi

python - 如何使用 web.py 动态填充表单中的选择框/下拉框?

转载 作者:太空狗 更新时间:2023-10-29 22:23:53 24 4
gpt4 key购买 nike

所有 web.py 表单示例均采用以下格式(来自 webpy.org):

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)

我不想在声明表单时静态填充下拉框(上例中的 form.Dropdown),而是在 GET/POST 方法中使用在调用页面时从数据库表中检索的条目。

我已经搜索了几个小时,但在任何地方(google、webpy.org、google groups)都找不到提示

最佳答案

您可以通过将空列表传递给 form.Dropdown args 来声明表单,然后在您的代码中设置 args

# form declaration
MyForm = form.Form(form.Dropdown("french", []))

# then in your controller
my_form = MyForm()
my_form.french.args = ['mustard', 'fries', 'wine']

另外请不要使用 form 作为变量,因为名称与 web.form 冲突。

关于python - 如何使用 web.py 动态填充表单中的选择框/下拉框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4697058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com