2014-06-28 116 views
0

我有一个CustomType,如何检查列是否设置为nullabe = 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) 

回答

2

我不明白你的意思在自定义类型创建什么。要检查列是否可为空去就像这样:

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

为了使您的自定义类型处理空(无)值,你可以做这样的事情:

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 
+0

我需要知道的名字手边的专栏,这不适合我。 – jdk2588

+0

您提供的解决方法是检查值是否通过,但应检查该字段是否设置为空。 – jdk2588

相关问题