WTForms - SelectMultipleField的多值字符串

时间:2011-06-21 13:47:09

标签: python multivalue wtforms

我有一个名为TestForm的WTForm,其中包含以下属性:

areas = SelectMultipleField(u'Test Areas', choices=TestArea.names())

当我创建TestForm的新实例并传入一个具有areas属性的对象时,该对象没有areas的值列表,而是一个字符串值为Area1;Area2;Area3的值。如何在['Area1', 'Area2', 'Area3']期望的列表SelectMultipleField和我的对象期望在areas中找到的字符串之间进行翻译?我有几个这样的字段,所以我宁愿不必传递像TestForm(areas=myObj.areas.split(';'), field2=myObj.field2.split(';'), ..., myObj)这样的字段。

1 个答案:

答案 0 :(得分:1)

我现在的解决方法是在我的SQLAlchemy模型中进行以下设置:

areas = Column(u'AREAS', VARCHAR(80))

@property
def areasList(self):
    return self.areas.split(';')

@areasList.setter
def areasList(self, areas):
    self.areas = ';'.join(areas)

然后在我的WTForms表格中:

areasList = SelectMultipleField(u'Test Areas', choices=TestArea.names())