如何将对象注入sqlalchemy会话?

时间:2016-03-17 08:26:27

标签: python sqlalchemy

我想使用sqlalchemy的跟踪系统作为ORM。我想将一个就绪模型对象(它继承自Base并可以在sqlalchemy中使用)注入一个就绪会话对象而不连接到数据库。我尝试做session.merge(obj,load = False)没有成功!它抱怨对象状态。我无法想象我怎么能引诱它。我只想注入对象然后进行更改并使用session.dirty来跟踪更改。使用merge with load = True(默认)时,任何工作都有效。但是我强烈拒绝通过会话连接数据库。

class Alaki(Base):
    __tablename__ = 'alaki'

    alaki_id = Column(Integer, primary_key=True)
    name = Column(LocalizedString)
    age = Column(Integer)
    children = relationship('AlakiChildren')

model = Alaki(alaki_id=5, name='test',age=32)
self.db_session.merge(model)  # Works but connects to database
self.db_session.merge(model, load=False) #Fails!

for item in self.db_session.dirty:
    print('dirty:' ,item)

0 个答案:

没有答案