2017-01-31 4 views
1

sqlalchemy_utils 라이브러리의 사용자 정의 유형 ChoiceType을 가진 SQLAlchemy 모델이 있습니다. 의 절약 자동 생성과 내가 제한 주위에 얻을 수있는 방법Websauna의 사용자 정의 열 유형이있는 생성 관리 패널

NotImplementedError: Not able to derive a colander type from sqlalchemy type: ChoiceType(length=255) Please explicitly provide a colander `typ` for the "social_network" Column.

: SOCIAL_NETWOKRS가 편집을 위해 관리자 패널에 내 모델을 갈 때 다음 오류가 발생했습니다 SOCIAL_NETWOKRS = [ ('vk', 'Vkontakte'), ('fb', 'Facebook'), ('youtube', 'Youtube'), ]

있습니다

class Recipient(Base, BaseMixin): 
    first_name = Column(String()) 
    last_name = Column(String()) 
    social_network = Column(ChoiceType(SOCIAL_NETWOKRS)) 

행정 패널?

답변

1

sqlalchemy_utils에서 이동하고 소 거기에서 직접 유효성 검사를 추가하십시오. 난 단지 사용의 경우 이런 종류의 PSQL 열거 형을 사용했다

class Account(BaseMixin, Base): 
    social_network = Column(String(), info={'colanderalchemy': { 
     'typ': colander.String(), 
     'widget': deform.widget.SelectWidget(values=SOCIAL_NETWOKRS), 
    }}) 
+0

, 그래서 선택의 대안이 작동하지 않습니다 수 있습니다 :

다음 조각은 예상대로 작동합니다. 그러나 여기에 예제를보고 싶다면 https://github.com/websauna/websauna.wallet/blob/master/websauna/wallet/models/account.py#L165 –

+0

또한 명확하게 소쿠리를 정의 할 수 있습니다. admin 양식의 목록에있는 SchemaNode()는'adminviews.py'를 참조하십시오 https://websauna.org/docs/narrative/crud/admin.html#edit-view-example –

+0

도움이됩니다! 고맙습니다! – Infernion