2013-06-12 6 views
1

저는 deform, sqlalchemy 및 colanderalchemy와 관련하여 지금 잠시 동안 레슬링 해 왔으며 선택 상자를 채우는 데 문제가 있습니다.NICE 방식으로 외래 키와 열 (enum) 열에서 변형 선택 위젯을 채우는 방법

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') 
               ] 
            ) 
           }}) 

Question2 :이 약

어떻게 : 질문 1

이 할 수있는 더 좋은 방법이 있나요

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

는 제 2 예는 더있을 수 있습니다 'n.children [x]'구문을 재정의 할 수있는 경우 관련성이 있습니다 (x 정수가 올바른지 확인하지 못함). ay는 전체 스크립트를 서브 클래 싱 할 때 오른쪽 열을 가리킴) 대신 열 이름이 전달됩니다.

+0

즉 n [ 'col_name'] – ting12