如何在sqlalchemy中查询类内部

如何在sqlalchemy中查询类内部,sqlalchemy,Sqlalchemy,我有一个与Item类具有一对多关系的用户类: class User(Base): items=relationship(Item) def method(self): for item in self.items if self.items.itemname=='my item' #do something 现在,我想在User类中的方法中访问用户的某些项(已过滤)。编写一个运行在所有项上的for循环(如示

我有一个与Item类具有一对多关系的用户类:

class User(Base):
    items=relationship(Item)
    def method(self):
        for item in self.items
            if self.items.itemname=='my item'
                #do something

现在,我想在User类中的方法中访问用户的某些项(已过滤)。编写一个运行在所有项上的for循环(如示例中所示)或在类内部运行一个查询是否更高效(性能方面)?(假设一个普通用户有几千个项目)。我甚至不知道如何在类中运行查询!是否有类似于
self.query.filter()
的方法,或者我应该在类中定义一个会话并运行
session.query(Items.filter()

如果确定当前实例已连接到会话,则可以使用

因此,它将是:

from sqlalchemy.orm.session import object_session

class User(Base):
    ...

    def method(self):
        session = object_session(self)
        session.query(Items).filter(...)
编辑

作为替代,我可以建议。在这种情况下,可以将关系作为查询获取,该查询可以进一步定义:

class User(Base):
    items=relationship(Item, lazy='dynamic')

user1 = session.query(User).get(user_id)
user1.items.filter(...)