Je peux interroger ma table Seat
pour tous les sièges où aucune invitation n'est attribuée:
seats = Seat.query.filter_by(invite=None).all()
Cependant, lorsque j'interroge pour tous les sièges auxquels une invitation est attribuée, j'obtiens un NameError
:
seats = Seat.query.filter_by(invite!=None).all()
NameError: name 'invite' is not defined
Voici ma classe Seat
:
class Seat(db.Model):
id = db.Column(db.Integer, primary_key=True)
invite_id = db.Column(db.Integer, db.ForeignKey('invite.id'))
invite = db.relationship('Invite',
backref=db.backref('folks', lazy='dynamic'))
Comment puis-je rechercher tous les sièges où le propriétaire n'est pas vide?
La méthode filter_by()
prend une séquence d'arguments de mots clés, vous devez donc toujours utiliser =
Avec.
Vous souhaitez utiliser la méthode filter()
qui permet !=
:
seats = Seat.query.filter(Seat.invite != None).all()
Je pense que cela peut aider http://docs.sqlalchemy.org/en/rel_0_9/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.isnot
query.filter(User.name == None)
ou alternativement, si pep8/linters sont une préoccupationquery.filter(User.name.is_(None))
query.filter(User.name != None)
ou alternativement, si pep8/linters sont une préoccupationquery.filter(User.name.isnot(None))