1

私はしばらくの間、deform、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'
                ] 
4

1 に答える 1

1

2 番目の例は、'n.children[x]' 構文がオーバーライドされる可能性があり (スクリプト全体をサブクラス化するときに x 整数が正しい列を指すのに適しているかどうかわからない)、渡された列名がより適切である可能性があります。代わりは。

于 2013-11-22T11:09:27.670 に答える