我有一个名为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)之类的内容。

最佳答案

我现在的解决方法是在我的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())

关于python - WTForms-SelectMultipleField的多值字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6426335/

10-11 14:00