flask - WTForms ListField of FieldForm 包含 RadioField - 表单没有属性“副本”
问题描述
我正在尝试使用烧瓶和 wtforms 动态添加无线电场
#FORMS
from flask_wtf import FlaskForm
from wtforms import FieldList, FormField, RadioField, SubmitField
class DomainForm(FlaskForm):
domain = RadioField('placeholder', choices=[])
class FormScore(FlaskForm):
domains = FieldList(FormField(DomainForm))
submit = SubmitField('Save')
###########################
DATA = [
("Lateral border", ('0', '0.5', '1')),
("Medial crease", ('0', '0.5', '1')),
("Talar head", ('0', '0.5', '1')),
("Posterior crease", ('0', '0.5', '1')),
("Equinus rigidity", ('0', '0.5', '1')),
("Empty heel", ('0', '0.5', '1'))
]
@app.route('/score', methods=['GET', 'POST'])
def score():
formlist = []
for i in range(len(DATA)):
domainForm = forms.DomainForm()
domainForm.domain.label = DATA[i][0]
domainForm.domain.choices = DATA[i][1]
domainForm.domain.name = DATA[i][0]
formlist.append(domainForm)
form = forms.FormScore()
form.domains= formlist
if form.validate_on_submit():
results=[]
for domainForm in form.domains:
results.append(domainForm.domain.data) ##data is always null
return render_template("score.html", form=form)
此代码在 html 中正确呈现,但在提交表单时,如您所料,尝试获取所选选项将始终返回 null
我也尝试了以下方法:
form.domains.entries = formlist
它也在 html 中成功呈现,但是当它到达该validate_on_submit
行时,我收到此错误
'FormScore' object has no attribute 'copy'
谢谢你的帮助
解决方案
推荐阅读
- android - H264 格式没有音频 如何在 h264 中获取音频
- javascript - 无法在编辑页面上更改我的输入类型值
- azure-devops - 在 Azure DevOps 中的构建和发布管道之间共享变量
- angularjs - 如何使用 selenium 单击具有动态 id 的 ng show 元素
- reactjs - react.js 应用程序中 iframe 下的 Reactstrap 模态
- c++ - C++17之前的类模板参数推导
- c# - 将 ExpandableObjectConverter 与下拉列表结合使用
- html - 如何删除node_modules文件夹Angular 5中不需要的文件
- go - 如何阻止重复进程?
- javascript - polymer3.x UI 上存在隐藏功能问题