【发布时间】:2018-10-19 16:40:23
【问题描述】:
我正在尝试制作一个表格来填充日历。日历可以是五天或七天,我想将天数作为参数传递给表单。我的表单是这样定义的:
class LoadForecastForm(Form):
def __init__(self, n_days, *args, **kwargs):
self.n_days = n_days
super(LoadForecastForm, self).__init__(*args, **kwargs)
self.day_values = FieldList(SelectField('Day Values', coerce=str, choices=[('low', 'Low'), ('medium', 'Medium'), ('high', 'High'), ('holiday', 'Holiday')]), min_entries=n_days, max_entries=n_days)
self.send = SubmitField('Send Calendar')
它是这样渲染的:
<form role="form" action="" method="POST">
{{ form.hidden_tag() }}
<div class="form-group row">
{% for field in form.day_values %}
<div class="col-sm-2">
<div class="form-group{% if field.errors %} error {% endif %}">
{% if label %}
{{ field.label }}
{% endif %}
{{ field(**kwargs) }}
{% for error in field.errors %}
<span class="help-inline">[{{error}}]</span><br>
{% endfor %}
</div>
</div>
{% endfor %}
</div>
{{ form.send }}
表单页面无法呈现;回溯以:
结尾File "project/populate_schedule.tpl.html", line 25, in block "page_content"
{% for field in day_values %}
TypeError: 'UnboundField' object is not iterable
n_days以前是硬编码的,字段定义为类变量,没有__init__()函数,也没有错误。如何以编程方式正确定义字段?我正在使用 Python 2.7。
【问题讨论】:
标签: python python-2.7 jinja2 flask-wtforms wtforms