2024-09-21 03:14:58 发布
网友
可以使用form.myfield.choices=[("1","Choice1"), ("2","Choice2")]设置选项
form.myfield.choices=[("1","Choice1"), ("2","Choice2")]
如何设置所选选项?
这就是我的工作方式(使用动态多选字段):
form = MyForm(request.form, obj=my_obj) form.tags.choices = [('1', 'abc'), ('2', 'def')] form.tags.default = ['1', '2'] form.tags.process(request.form)
如果我只调用form.process(),它将丢失表单中其他字段的默认值。
form.process()
创建字段时,可以使用choices和default关键字参数,如下所示:
choices
default
my_choices = [('1', 'Choice1'), ('2', 'Choice2'), ('3', 'Choice3')] SelectMultipleField(choices = my_choices, default = ['1', '3'])
这会将选项1和3标记为选中。
编辑:默认值显然是在窗体被安装时处理(复制到data成员中)的,因此在以后更改默认值不会有任何效果,除非您在字段上手动调用process()。您可以设置data成员,如下所示:
data
form.myfield.data = ['1', '3']
但我不确定这两种方法是否都是好的做法。
编辑:如果要实际设置数据而不是默认值,则可能应该使用表单加载数据。
Form对象将formdata作为第一个参数,并使用它自动填充字段值。(您应该使用带有getlist方法的字典包装器)
Form
formdata
也可以在创建表单时使用关键字参数设置数据,如下所示:
form = MyForm(myfield = ['1', '3'])
这就是我在一个SelectField上的工作原理:
SelectField
form.myfield.default = '1' form.process()
我猜你可以给form.myfield.default分配一个列表。不过,键似乎是在指定给default之后调用表单上的process方法。
form.myfield.default
process
这就是我的工作方式(使用动态多选字段):
如果我只调用
form.process()
,它将丢失表单中其他字段的默认值。创建字段时,可以使用
choices
和default
关键字参数,如下所示:这会将选项1和3标记为选中。
编辑:默认值显然是在窗体被安装时处理(复制到
data
成员中)的,因此在以后更改默认值不会有任何效果,除非您在字段上手动调用process()。您可以设置data
成员,如下所示:但我不确定这两种方法是否都是好的做法。
编辑:如果要实际设置数据而不是默认值,则可能应该使用表单加载数据。
Form
对象将formdata
作为第一个参数,并使用它自动填充字段值。(您应该使用带有getlist方法的字典包装器)也可以在创建表单时使用关键字参数设置数据,如下所示:
这就是我在一个
SelectField
上的工作原理:我猜你可以给
form.myfield.default
分配一个列表。不过,键似乎是在指定给default之后调用表单上的process
方法。相关问题 更多 >
编程相关推荐