Ich habe ein boolesches Feld in der MySQL-DB-Tabelle.
# table model
class TestCase(Base):
__tablename__ = 'test_cases'
...
obsoleted = Column('obsoleted', Boolean)
Um die Anzahl aller nicht veralteten Testfälle zu ermitteln, gehen Sie einfach wie folgt vor:
caseNum = session.query(TestCase).filter(TestCase.obsoleted == False).count()
print(caseNum)
Das funktioniert gut, aber der flake8 meldet die folgende Warnung:
E712: Der Vergleich mit False sollte "wenn cond False:" oder "if not cond:" sein.
Okay, ich denke das macht Sinn. Ändern Sie also meinen Code wie folgt:
caseNum = session.query(TestCase).filter(TestCase.obsoleted is False).count()
oder
caseNum = session.query(TestCase).filter(not TestCase.obsoleted).count()
Aber keiner von ihnen kann arbeiten. Das Ergebnis ist immer 0. Ich denke, die Filterklausel unterstützt den Operator "ist" oder "ist nicht" nicht. Kann mir jemand sagen, wie ich mit dieser Situation umgehen soll? Ich möchte die Flocke nicht deaktivieren.