SQLAlchemy:一个过滤器属性,可以针对不同的表进行可变验证?

时间:2014-02-21 17:35:46

标签: python sql sqlalchemy flask-sqlalchemy

我正在开发一个需要将多个表合并到一个User类中的Web应用程序。问题是某些用户需要链接到一个表而其他用户需要链接到另一个表。这是我的模型如何设置的一般视图。

class User(Model):
    IDType1 = Column(Integer())
    IDType2 = Column(Integer())
    Active = Column(Boolean())
    #...

class OtherType1(Model):
    ID = Column(Integer())
    Active = Column(Boolean())
    #...

class OtherType2(Model):
    ID = Column(Integer())
    Active = Column(Boolean())
    #...

每个OtherType都有一个标记为活动或非活动的标记,并使用相对频率进行更新。我希望能够检查用户是否处于活动状态,这意味着我必须可变地检查他们各自的标志是否被标记为活动状态。理想情况下,我想执行下面的查询,但我不知道这是否可能。

query = User.query.filter(User.is_active==True)

我能想到的最好的选择是有一个名为active_users的方法,它创建一个基本的Query,其中包含Join / Where语句,但我很好奇是否有更好的方法。

1 个答案:

答案 0 :(得分:-1)

您必须使用Model.query.filter_by方法。

所以你的查询会是这样的:

User.query.filter_by(Active=True)