WTForms - 多值字符串到SelectMultipleField
我有一个叫做 TestForm
的表单,它有一个属性:
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 个回答
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())