我在 mysql db 表中有一个布尔字段。
# table model
class TestCase(Base):
__tablename__ = 'test_cases'
...
obsoleted = Column('obsoleted', Boolean)
要获得所有未过时的测试用例的数量,可以像这样简单地完成:
caseNum = session.query(TestCase).filter(TestCase.obsoleted == False).count()
print(caseNum)
这工作正常,但 flake8 报告以下警告:
E712: 与 False 的比较应该是“if cond is False:”或“if not cond:”
好吧,我觉得有道理。所以把我的代码改成这样:
caseNum = session.query(TestCase).filter(TestCase.obsoleted is False).count()
或者
caseNum = session.query(TestCase).filter(not TestCase.obsoleted).count()
但他们都不能工作。结果总是0。我认为filter子句不支持运算符“is”或“is not”。有人可以告诉我如何处理这种情况。我不想禁用薄片。