填充表单时对象不可迭代
object is not iterable when populate form
我想填充 select 字段的选项。
我正在尝试此代码,但我收到:
TypeError: 'Industry' object is not iterable
查看
form = Filter_companies(request.form)
interests = Industry.query.all()
#[<app.companies.models.Industry object at 0xa9afc0c>, <app.companies.models.Industry object at 0xa9afc4c>}
form.industry.choices = interests
形式
class Filter_companies(Form):
industry = SelectField('Industry')
错误原因是什么?
编辑:像这样的东西将用每个对象的字面表示来填充。
form.industry.choices = [(x, x) for x in interests]
choices
需要是一个包含键值对的可交互对象。
interests = Industry.query.all()
form.industry.choices = [(interest.id, str(interest)) for interest in interests]
这将导致 value
与 id
匹配且文本与 __str__
的 return 值匹配的选项。
<option value="1">Name 1<option>
<option value="2">Name 2<option>
你应该填充一个字典
form = Filter_companies(request.form)
interests = {}
industrydata = form.industry.choices
interests.append(andustry.query.all())
industrydata = interests.key('Industry')
print industrydata
没有关于如何生成此数据集的更多信息或附加信息,这就是我认为您应该关注的事情。
我想填充 select 字段的选项。
我正在尝试此代码,但我收到:
TypeError: 'Industry' object is not iterable
查看
form = Filter_companies(request.form)
interests = Industry.query.all()
#[<app.companies.models.Industry object at 0xa9afc0c>, <app.companies.models.Industry object at 0xa9afc4c>}
form.industry.choices = interests
形式
class Filter_companies(Form):
industry = SelectField('Industry')
错误原因是什么?
编辑:像这样的东西将用每个对象的字面表示来填充。
form.industry.choices = [(x, x) for x in interests]
choices
需要是一个包含键值对的可交互对象。
interests = Industry.query.all()
form.industry.choices = [(interest.id, str(interest)) for interest in interests]
这将导致 value
与 id
匹配且文本与 __str__
的 return 值匹配的选项。
<option value="1">Name 1<option>
<option value="2">Name 2<option>
你应该填充一个字典
form = Filter_companies(request.form)
interests = {}
industrydata = form.industry.choices
interests.append(andustry.query.all())
industrydata = interests.key('Industry')
print industrydata
没有关于如何生成此数据集的更多信息或附加信息,这就是我认为您应该关注的事情。