变形选择窗口小部件采用两个元素元组的序列。如何从sqlalchemy查询中的两列创建两个元素元组。
以下代码适用于硬编码示例。
class ProfileValueSelect(colander.MappingSchema):
choices = (
('', '- Select -'),
('one', 'One'),
('two', 'Two'),
('three', 'Three')
)
menu = colander.SchemaNode(
colander.String(),
title=False,
missing=unicode(''),
widget=deform.widget.SelectWidget(values=choices)
)
没有提供足够的信息,但发现解决方案比我想象的更直接。
class ProfileValueSelect(colander.MappingSchema):
result = DBSession.query(Profile.uid, Profile.value).order_by(Profile.value).all()
menu = colander.SchemaNode(
colander.String(),
title=False,
missing=unicode(''),
widget=deform.widget.SelectWidget(values=result)
)