我正在使用 Python 构建网站 Flask我使用的框架 WTForms .在一种形式中,我有一个 RadioField定义如下:
display = RadioField('display', default='ONE')
这没有定义任何选项,因为我稍后会这样做(效果非常好):
myForm = MyForm()
myForm.display.choices = [('ONE', 'one'), ('TWO', 'two')] # This works fine
我现在想为 RadioField 设置默认值在我为它设置选项之后。因此,我尝试从定义中删除默认值(我不确定 'ONE'
是否始终是一个可用的选择),然后在创建选项后创建默认值,就像我在上面所做的那样:
myForm.display.default = 'ONE'
不幸的是,这根本没有效果。如果我像以前那样在 Field 定义中手动设置它,它工作正常,但如果我在创建选择后动态设置它,则不会。
有人知道如何在 WTForms 中动态设置 RadioField 的默认值吗?欢迎所有提示!
最佳答案
您需要在添加选项并设置default
属性后运行myForm.process()
:
myForm = MyForm()
myForm.display.choices = [('ONE', 'one'), ('TWO', 'two')]
myForm.display.default = 'ONE'
myForm.process() # process choices & default
这是因为 default
被传播到字段值(在 RadioField
的情况下,checked
属性) process
方法,在构造函数中调用。
关于python - 如何在 WTForms RadioField 中动态设置默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31423495/