sqlalchemy не может получить данные с логическим полем в параметре фильтра (указанном с помощью) - PullRequest
3 голосов
/ 18 июня 2020
Channel.query.filter(Channel.is_default == True).all()

Когда я использую вышеупомянутое выражение, оно работает, но появляется рекомендация pep8. Поэтому вместо этого я использую выражение ниже.

Channel.query.filter(Channel.is_default is True).all()

Но когда я запускаю код, данные не возвращаются. не является ошибкой или предупреждением.

1 Ответ

0 голосов
/ 18 июня 2020

~ Когда вы имеете дело со свойством или методом, возвращающим логические значения, нет абсолютно никакой необходимости сравнивать их с True или False. Даже это плохая практика. * Channel.query.filter(Channel.is_default).all() И если этот фильтр не дает никаких результатов, это потому, что не all в вашем Channel имеет is_default, установленное на True. Этот фильтр так же прост, как и они.

Изменить: мой ответ был дезинформирован, функция filter в sqlalchemy - очень частный случай условности в Python. См. этот вопрос и его наиболее известные ответы , которые также отвечают на вопрос OP на данный момент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...