WTForms - 多值字符串到SelectMultipleField

1 投票
1 回答
1131 浏览
提问于 2025-04-16 20:00

我有一个叫做 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())

撰写回答