首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLAlchemy hybrid_method -传递明显的参数

SQLAlchemy hybrid_method -传递明显的参数
EN

Stack Overflow用户
提问于 2013-06-12 04:26:45
回答 1查看 650关注 0票数 0

我正在使用python和sqlalchemy。我有一个名为Team的表和另一个名为Game的表。游戏表有列"away_id“和"home_id”,团队表有列"team_id“。我刚刚为Team类创建了这个hybrid_method,它将返回away_id或home_id与team_id匹配的所有游戏实例。我传递给它的参数s是一个会话实例。我怎么才能把这段代码写成@hybrid_property,这样我就不必把它传递给session实例了?

代码语言:javascript
复制
@hybrid_method
def games(self, s):
    return s.query(Game).filter(or_(Game.away_id==self.team_id, Game.home_id==self.team_id)).all()
EN

回答 1

Stack Overflow用户

发布于 2013-06-17 12:45:26

首先,从我在这里可以看到的是,这不是一个用例,因为“@ here”混合是专门用于这样的用例的:"MyClass.games == something",在类级别,以及"my_object.games == something",在实例级别。这里的情况并非如此,您试图完整地运行一个查询,将一个特定的self.team_id传递给它-所以您需要一个self,所以这只是一个常规的方法或描述符。

所以只需使用@property和object_session()作为文档的say right here

代码语言:javascript
复制
class MyClass(Base):
   # ...

   @property
   return object_session(self).query(Game).filter(...)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17053142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档