Python SqlAlchemy:是指从对象绑定的会话吗?

Python SqlAlchemy:是指从对象绑定的会话吗?,python,sqlalchemy,Python,Sqlalchemy,假设我正在使用一个声明性对象,如下所示: class MyObject(DeclarativeBase): ... other_object_id = Column(Integer, ForeignKey('other_object.id')) other_object = relationship("OtherObject") ... 假设我想要一个方便的方法设置其他对象的值,它将修改其他对象的值,创建一个其他对象的实例,并在必要时将其添加到会话中: def set_

假设我正在使用一个声明性对象,如下所示:

class MyObject(DeclarativeBase):
   ...
   other_object_id = Column(Integer, ForeignKey('other_object.id'))
   other_object = relationship("OtherObject")
   ...
假设我想要一个方便的方法
设置其他对象的值
,它将修改
其他对象的值
,创建一个
其他对象的实例
,并在必要时将其添加到会话中:

def set_other_object_value(self, value):
   if self.other_object is None:
      <create instance of OtherObject and associate with the session>
   self.other_object.value = value
def set_other_object_值(self,value):
如果self.other_对象为None:
self.other_object.value=值
问题是:如何创建
OtherObject
并将其与会话关联?一个可能等价的问题:是否可以访问从
MyObject
实例中添加了
MyObject
会话的实例?

使用:

但是,如果您已正确设置了关系,则无需将新的
值添加到会话中,因为
sqlalchemy
将找出它并将其保存到数据库中

from sqlalchemy.orm.session import object_session
# ...

def set_other_object_value(self, value):
    if self.other_object is None:
        value = OtherObject(...)
    self.other_object.value = value
    object_session(self).add(value)