3
我想定义一个基于字典name: label
的字段的表单类。我尝试了以下,几乎工作。然而,渲染模板中的字段给了AttributeError: 'UnboundField' object has no attribute '__call__'
。我如何动态添加字段到表单?将字段动态添加到WTForms表单
def build_form(name, record):
class ContactForm(FlaskForm):
name = StringField(name)
fieldlist = {}
for key, value in record.items():
fieldlist[key] = StringField(key)
@app.route('/', methods=['GET', 'POST'])
def showform():
form = ContactForm(request.form)
if request.method == 'POST':
return 'form processed'
return render_template('cardcompare.tpl', record=record, form=form)
<form method=post>
{{ form.name() }}
{% for key, value in record.items() %}
{{ form.fieldlist[key]() }}
{% endfor %}
<input type=submit value=Register>
</form>
谢谢,有没有办法让动态字段添加到可以在模板中迭代的结构? (例如在示例中的类似字段列表)?目标是处理动态字段与模板中的静态字段不同。 – Omniver
该部分被编辑过分地删除了。我恢复了它。 – Feodoran
我已经把'setattr'放在MyForm的'__init__'里面了,因为我需要将属性列表传递给表单,除了第一次运行时,它会工作,你知道为什么吗? – TomSawyer