2016-04-05 129 views
-1

我的模式是這樣的:燒瓶SQLAlchemy的客戶?

class A(db.Model): 
    __tablename__ = 'tablename' 
    id = Column(Integer, primary_key=True) 
    users = Column(String(128)) 

但大多數的時候,我用的是用戶字段列表。

在Java ORM中,我可以通過告訴框架如何將字符串映射到列表和列表到字符串來將該字段聲明爲列表。

所以我想知道有什麼辦法可以在Flask中做到這一點。

+0

我不能告訴你的要求定製類型。 – davidism

+0

@davidism,對不起。我改變了我的描述。 – yunfan

回答

1

您可以創建TypeDecorator

import sqlalchemy.types as types 


class MyList(types.TypeDecorator): 
    impl = types.String 

    def process_bind_param(self, value, dialect): 
     return ','.join(value) 

    def process_result_value(self, value, dialect): 
     return value.split(',') 


class A(db.Model): 
    __tablename__ = 'tablename' 
    id = Column(Integer, primary_key=True) 
    users = Column(MyList) 


a = A(users=['user1', 'user2']) 
db.session.add(a) 
db.session.commit() 
A.query.first().users 
>> [u'user1', u'user2']