Python SQLAlchemy:Combine包含渴望与延迟

Python SQLAlchemy:Combine包含渴望与延迟,python,sqlalchemy,Python,Sqlalchemy,有以下SQLAlchemy映射类: class Person(Base): __tablename__ = 'person' id = sqla.Column(sqla.Integer, primary_key=True) name = sqla.Column(sqla.String) assoc_owned_things = relationship('Owns') class Thing(Base): __tablename__ = 'thing'

有以下SQLAlchemy映射类:

class Person(Base):
    __tablename__ = 'person'
    id = sqla.Column(sqla.Integer, primary_key=True)
    name = sqla.Column(sqla.String)
    assoc_owned_things = relationship('Owns')

class Thing(Base):
    __tablename__ = 'thing'
    id = sqla.Column(sqla.Integer, primary_key=True)
    name = sqla.Column(sqla.String)
    assoc_owned_by = relationship('Owns')

class Owns(Base):
    __tablename__ = 'owns'
    person_id = sqla.Column(sqla.Integer, sqla.ForeignKey('person.id'), primary_key = True, autoincrement = False)
    person = relationship("Person")
    thing_id = sqla.Column(sqla.Integer, sqla.ForeignKey('thing.id'), primary_key = True, autoincrement = False)
    thing = relationship("Thing")
    ownership_payload = sqla.Column(sqla.Text)
然后这个代码:

person = (session.query(Person).join(Owns).join(Thing).filter(Person.id == id_p2)
    .options(Load(Owns).defer('ownership_payload'), contains_eager(Person.assoc_owned_things, Owns.thing)).one())
print(p2.assoc_owned_things[0].ownership_payload)
在一个查询中加载所有字段。如何在此查询中延迟
所有权\u有效载荷
字段,以便访问它将再次查询数据库?使用的
延迟
选项似乎对ORM行为没有任何影响。

这个解决方案对我很有效