如何过滤SQLAlchemy中包含所有项目的多对多?

时间:2018-04-19 03:17:41

标签: python sqlalchemy many-to-many

class Group(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Text, unique=True, nullable=False)

    user = db.relationship("User", backref="group", cascade="delete")


class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Text, unique=True, nullable=False)
    group_id = db.Column(db.Integer, db.ForeignKey(Group.id, ondelete="CASCADE"), nullable=False)


group_names = ["foo", "bar"]
User.query.filter(User.group.any(Group.name.in_(group_names))).all()

此查询可以过滤至少在Userfoo组中的bar。但是,我想查询 BOTH 组中的用户。

有没有办法在SQLAlchemy WITHOUT 中使用for循环创建链或查询?

0 个答案:

没有答案