如何在Flask中创建可变大小的表单?
这是我的forms.py:
from flask_wtf import Form
from wtforms import StringField, BooleanField, SelectField, TextField
from wtforms.validators import DataRequired
class TestForm(Form):
blanks = ....
test = []
foreach blank in blanks
test.append(TextField(blank, [validators.Length(min=5, max=70)]))
这是我的模板:
<form action="" method="post" name="test">
{{ form.hidden_tag() }}
{% for test in form.tests %}
{{ test }}
{% endfor %}
<p><input type="submit" value="Test"></p>
</form>
显示&#34; TextField ...&#34;而不是显示表单输入的实际HTML。我究竟做错了什么?我该如何正确地做到这一点?
答案 0 :(得分:0)
首先,您在表单类pipenv
中命名了变量,但在模板中的test
上进行了循环,但这很可能是错字。
核心问题是,您正在创建一个列表作为类属性,但是您在模板中访问的表单是该类的对象,而不是该类本身。要为每种表单设置一个类属性(wtform会为您生成字段的方式),您必须在导入类后修改该类。例如this answer on stackoverflow中的wit setattr()。