【发布时间】:2016-05-26 15:47:14
【问题描述】:
我想搜索一个 SQLAlachmey 列表(通过关联表)并通过过滤器匹配其中的多个项目。
我已经查看了this question,但我希望仅通过 ORM 过滤器来完成此操作(第二个答案不是通过关联表)。
数据库表设置:
tag_ast_table = Table('tag_association',
Base.metadata,
Column('file_id', Integer, ForeignKey('files.id')),
Column('tag_id', Integer, ForeignKey('tags.id')),
PrimaryKeyConstraint('file_id', 'tag_id'))
class File(Base):
__tablename__ = 'files'
id = Column(Integer, primary_key=True)
tags = relationship("Tag", secondary=tag_ast_table)
class Tag(Base):
__tablename__ = 'tags'
id = Column(Integer, primary_key=True)
tag = Column(String)
匹配任何我想修改以匹配所有的当前过滤器:
query = db.query(File).filter(File.tags.any(Tag.tag.in_(my_list))).all()
【问题讨论】:
标签: python python-2.7 python-3.x sqlalchemy