小编Kal*_*lie的帖子

在枚举列表中过滤枚举 sqlalchemy

我在 python 中有以下枚举:

class Status(enum.Enum):
    produced = 1
    consumed = 2
    success = 3
    failed = 4
Run Code Online (Sandbox Code Playgroud)

以及以下 SQLAlchemy 模型

class Message(Base):
    __tablename__ = 'table'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    status = Column(Enum(Status))
Run Code Online (Sandbox Code Playgroud)

我想过滤查询中的几个状态,如下所示:

session.query(Message).filter(Message.status in [Status.failed, Status.success])
Run Code Online (Sandbox Code Playgroud)

但无论我的数据库中有什么,结果总是空的,这可能是因为不了解Message.status.

然而,这确实有效:

session.query(Message).filter(Message.status == Status.failed or Message.status == Status.success)
Run Code Online (Sandbox Code Playgroud)

python enums sqlalchemy

8
推荐指数
1
解决办法
2919
查看次数

标签 统计

enums ×1

python ×1

sqlalchemy ×1