python - Sqlalchemy - 如何获取对象,并过滤子类中的哪些行

标签 python sqlalchemy

我是 Sqlalchemy 新手,需要一些帮助。

我有一个模型,具有一对多关系:

class Metnadev(DeclarativeBase):
    __tablename__ = 'metnadev'

    #personal info
    id = Column(Integer, autoincrement=True, primary_key=True)
    first_name = Column(Unicode(255))
    last_name = Column(Unicode(255))
    birth_day = Column(Date)
    activitys = relationship("Activity", backref="metnadev")

class Activity(DeclarativeBase):
    __tablename__ = 'activity'

    id = Column(Integer, autoincrement=True, primary_key=True)
    metnadev_id = Column(Integer, ForeignKey('metnadev.id'))

    location = Column(Unicode(255))
    visible = Column(Boolean,default=True)

当我这样做的时候

metnadev = DBSession.query(Metnadev).filter_by(id=kw['id']).one()

我和 child 一起得到了这个东西,太棒了。 我想获取对象,但只获取子类中的行,其中 visible == True

我搜索过,但不知道该怎么做, 感谢您的帮助

最佳答案

文档的这一部分有您的答案:http://docs.sqlalchemy.org/en/rel_0_6/orm/relationships.html#building-query-enabled-properties

class Metnadev(DeclarativeBase):
    #...
    @property
    def activities(self):
        return object_session(self).query(Activity).filter_by(visible=True).with_parent(self).all()

关于python - Sqlalchemy - 如何获取对象,并过滤子类中的哪些行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13821837/

相关文章:

python - python 中动词的 NodeBox 错误

Python SSH 没有给出完整的输出

python - Django 数据库名称 'connection' 未定义

python - numpy.concatenate 多维数组

python - Pandas、matplotlib 和plotly - 如何修复系列图例?

python - 您如何从 session 中确定 sqlalchemy 驱动程序?

python - 执行 flask-SQLAlchemy 子查询

python - Apache2 WSGI Flask 应用程序给出 sqlalchemy.exc.OperationalError : (sqlite3. OperationalError)无法打开数据库文件

python - SQLAlchemy 多态加载

python - SQLAlchemy 混合表达式访问不同的行