Как заполнить деформировать выбранные виджеты из столбцов внешнего ключа и перечисления NICE способом
Я некоторое время боролся с деформацией, sqlalchemy и colanderalchemy, и у меня возникли некоторые проблемы с заполнением полей выбора.
Вопрос 1
Есть лучший способ сделать это:
value_type = Column(Enum('string','boolean','integer','float','reference','enum'),info={
'colanderalchemy':
{
'widget':deform.widget.SelectWidget(
values = [
('string','string'),
('boolean','boolean'),
('integer','integer'),
('float','float'),
('reference','reference'),
('enum','enum')
]
)
}})
Вопрос 2:
А как насчет этого:
reference_cat_id = Column(Integer,ForeignKey('category_nodes.id'),info={'colanderalchemy':{'widget':deform.widget.SelectWidget()}})
...
n = SQLAlchemySchemaNode(MyModel)
n.children[x].widget.values = [
(
oCat.id,
oCat.name
)
for oCat in
DBSession.query(CategoryNode).filter_by(accepted=True)
if oCat.getType() == 'Base'
]
1 ответ
Второй пример может быть более уместным, если синтаксис n.children[x] когда-либо может быть переопределен (не уверен, что целое число x будет хорошим способом указать на правый столбец при создании подкласса всего сценария) и имя столбца, переданное вместо.