小编Tim*_*imo的帖子

如何在Flask SQLAlchemy中按多个条件过滤?

我有下面显示的数据库,它工作正常。现在,我有一个名为Bob的用户,该用户拥有空间Mainspace。我想让一个布尔值看看他是否是该空间的所有者。我尝试应用两个过滤器,但出现以下错误。

sqlalchemy.exc.InvalidRequestError: Can't compare a collection to an object or collection; use contains() to test for membership.
Run Code Online (Sandbox Code Playgroud)

命令:

exists = Space.query.filter_by(name="Mainspace", owner="Bob").first()
Run Code Online (Sandbox Code Playgroud)

数据库:

space_access = db.Table('space_access',
    db.Column('userid', db.Integer, db.ForeignKey('user.id')),
    db.Column('spaceid', db.Integer, db.ForeignKey('space.id')))

class User(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(15), unique=True)
    email = db.Column(db.String(50), unique=True)
    password = db.Column(db.String(80))
    role='admin';

    spaces = db.relationship('Space', secondary=space_access, backref=db.backref('owner', lazy='dynamic'))

class Space(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), unique=True)
    type = db.Column(db.String(50), unique=True)
Run Code Online (Sandbox Code Playgroud)

python mysql sqlalchemy flask flask-sqlalchemy

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

flask ×1

flask-sqlalchemy ×1

mysql ×1

python ×1

sqlalchemy ×1