我想使用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)