问题描述
我正在尝试使用烧瓶和 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",("Talar head",("Posterior crease",("Equinus rigidity",("Empty heel",'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'
感谢您的帮助
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)