python - 如何在 WTForms RadioField 中动态设置默认值?

标签 python forms flask default wtforms

我正在使用 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/

相关文章:

python - 为什么 Python 的内置 sum 比手动求和慢得多?

forms - zend 表单依赖下拉列表

javascript - ANGULAR - 如果表单值未更改,则禁用提交按钮

python - 来自 Windows 控制台的 Flask python -c "from app import app; app.run(debug=True)"

python - 将直播发送到单独的前端

python - Flask socket IO 从另一个模块发出

python - pdf2image 如何使用 "enable all features"阅读 pdf - Windows

html - 将图标放在表单中的输入元素内并移动图标

javascript - 在 flask 中处理 javascript 输出后重新加载页面

python - 相对导入创建不同的类对象?