如何检查自定义类型是否设置为nullable=True
我有一个自定义类型,我该如何检查在创建这个自定义类型时,列是否被设置为可为空(nullable=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 个回答
5
我不太明白你说的在自定义类型创建时是什么意思。要检查某一列是否可以为空,可以这样做:
print(User.__table__.columns['mytype'].nullable)
为了让你的自定义类型能够处理空值(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