首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用SqlAlchemy_Utils ChoiceType设置默认值

如何使用SqlAlchemy_Utils ChoiceType设置默认值
EN

Stack Overflow用户
提问于 2015-10-15 16:38:01
回答 1查看 3.6K关注 0票数 9

我刚刚从NoSQL迁移到了SqlAlchemy,而且我对SqlAlchemy ORM相当陌生。

在我的用例中,我需要模型中的一个字段来存储给定的选择集:

代码语言:javascript
复制
# models.py
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.utils.types.choice import ChoiceType

Base = declarative_base()    

class User(Base):
    __tablename__ = 'user'
    USER_TYPES = [
       ('user', 'User'),
       ('admin', 'Admin User')
    ]

    id = Column(Integer(), primary_key=True)
    type = Column(ChoiceType(User_Types), default='user')

但是当我运行我的脚本时,我得到:

代码语言:javascript
复制
> SAWarning: Unicode column 'None' has non-unicode default value 'user' specified.
  self.default

在我设置默认值并键入not“ChoiceType”的其他字段上没有错误)。

有人知道我做错了什么吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-15 17:34:31

默认情况下,ChoiceType列是Unicode(255)Unicode类型是一个String子类,它假设输入和输出都是Python数据。应该将默认值设置为unicode字符串。

代码语言:javascript
复制
type = Column(ChoiceType(USER_TYPES), default=u'user')

也可以设置impl参数。

代码语言:javascript
复制
type = Column(ChoiceType(USER_TYPES, impl=String()), default='user')
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33153965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档