2016-04-05 13 views
-1

Mein Modell ist das wie:Flask SQLAlchemy Kunde orm?

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

Aber die meiste Zeit verwende ich die Benutzer-Feld als Liste.

In Java ORM kann ich dieses Feld als Liste deklarieren, indem ich dem Framework einfach verrate, wie man einen String zur Liste und einen zu String strickt.

Also ich frage mich, es gibt eine Möglichkeit, dies in Flask zu tun.

+0

erstellen Ich kann nicht sagen, was Sie fragen. – davidism

+0

@davidism, tut mir leid. Ich habe meine Beschreibung geändert. – yunfan

Antwort

1

Sie können benutzerdefinierte Typ mit 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']