Websauna中具有自定义列类型的生成管理面板

时间:2017-01-31 12:43:24

标签: sqlalchemy colander deform colanderalchemy websauna

我有一个SQLAlchemy模型,其自定义类型ChoiceType来自sqlalchemy_utils库。

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

其中SOCIAL_NETWOKRS为SOCIAL_NETWOKRS = [ ('vk', 'Vkontakte'), ('fb', 'Facebook'), ('youtube', 'Youtube'), ]

进入管理面板进行编辑我的模型时出现了下一个错误:

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.

如何通过保存管理面板的自动生成来解决限制?

1 个答案:

答案 0 :(得分:1)

我从sqlalchemy_utils移开并添加了漏勺的直接验证。

下一个代码段按预期工作:

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