How to set default value using SqlAlchemy_Utils ChoiceType

I just migrated from NoSQL to SQL, and I'm pretty new to SqlAlchemy ORM.

In my use case, I need a field in models to be able to save a given set:

# 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')

But when I run my script, I get:

> SAWarning: Unicode column 'None' has non-unicode default value 'user' specified.
  self.default

And no errors in other fields where I set the default values ​​and not of type "ChoiceType").

Does anyone know what I did wrong?

Thanks!

+4
source share
1 answer
Default column

ChoiceType Unicode(255). Unicode String, Unicode Python.

type = Column(ChoiceType(USER_TYPES), default=u'user')

impl

type = Column(ChoiceType(USER_TYPES, impl=String()), default='user')
+3

Source: https://habr.com/ru/post/1611820/


All Articles