Подтвердить что ты не робот

Колба SQLAlchemy запрашивает столбец с "не равно"

Я могу запросить мои Seat таблицы для всех мест, где нет не приглашать назначено:

seats = Seat.query.filter_by(invite=None).all()

Однако при запросе всех мест, которым назначено приглашение, я получаю NameError:

seats = Seat.query.filter_by(invite!=None).all()
NameError: name 'invite' is not defined

Вот мой класс 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'))

Как я могу запросить все места, где владелец не пуст?

4b9b3361

Ответ 1

Метод filter_by() принимает последовательность аргументов ключевого слова, поэтому вы всегда должны использовать = с ним.

Вы хотите использовать метод filter() который позволяет !=:

seats = Seat.query.filter(Seat.invite != None).all()

Ответ 2

Я думаю, это может помочь http://docs.sqlalchemy.org/en/rel_0_9/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.isnot

Не указано

query.filter(User.name == None)

или, альтернативно, если pep8/linters вызывают беспокойство

  query.filter(User.name.is_(None))

Нет никого

query.filter(User.name != None)

или, альтернативно, если pep8/linters являются проблемой

query.filter(User.name.isnot(None))