如何以NICE方式从外键和枚举列填充变形选择窗口小部件

时间:2013-06-12 15:03:31

标签: sqlalchemy python-3.2 deform colanderalchemy

我一直在与变形,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 个答案:

答案 0 :(得分:1)

如果可以覆盖'n.children [x]'语法,那么第二个例子可能更相关(不确定x子整数是在子类化整个脚本时指向右列的好方法)和而是传递了列名。