我有两个模型,通过多对多关系加入
image_tag = Table('image_tag', Base.metadata,
Column('image_id', Integer, ForeignKey('images.id')),
Column('tag_id', Integer, ForeignKey('tags.id'))
)
class Image(Base):
__tablename__='images'
id = db.Column(db.Integer, primary_key=True)
tags = relationship('Tag', secondary=image_tag, backref=backref('images', order_by=id.desc()), lazy="joined")
class Tag(Base):
__tablename__ = 'tags'
id = Column(Integer, primary_key=True)
tag = Column(String(64), unique=True)
现在假设我想按标签过滤图像 - 很简单:
_tag = "foo"
Image.query.filter(Image.tags.any(tag=_tag)).all()
但是,如果我想通过许多标签进行过滤,并且只想匹配那些匹配所有标签的图像怎么办?
tags = ["foo", "bar"]
???
非常感谢任何帮助。谢谢!