2013-06-12 16 views
1

我一直在與變形,sqlalchemy和colanderalchemy搏鬥一段時間,現在我在填充選擇框時遇到了一些麻煩。如何填充變形從外鍵和枚舉列以NICE方式選擇小部件

問題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整數是否是一個好的w ay在子類化整個腳本時指向右側列)並且傳遞列名。

+0

即n ['col_name'] – ting12