如何检查自定义类型是否设置为nullable = True

时间:2014-06-28 06:53:03

标签: python sqlalchemy

我有一个CustomType,如何在自定义类型创建时检查Column是否设置为nullabe = True?

 import sqlalchemy.types as types

 class MyType(types.TypeDecorator):
     impl = types.Unicode

     def process_bind_param(self, value, dialect):
         return "PREFIX:" + value

     def process_result_value(self, value, dialect): 
         return value[7:]

这是一个定义的模型,将使用它:

class User(BaseModel):
     __tablename__ = 'user'

     mytype = Column(MyType(), nullable=True)

1 个答案:

答案 0 :(得分:2)

我不明白你在自定义类型创建中对的意思。要检查列是否可为空,请执行以下操作:

print(User.__table__.columns['mytype'].nullable)                                                                                       

要启用自定义类型句柄Null(None)值,您可以执行以下操作:

class MyType(types.TypeDecorator):       
  impl = types.Unicode

  def process_bind_param(self, value, dialect):
    return "PREFIX:" + value if value else None

  def process_result_value(self, value, dialect):
    return value[7:] if value else None