gpt4 book ai didi

python - 如何在所有 SQLAlchemy 的查询中实现默认条件

转载 作者:太空宇宙 更新时间:2023-11-03 14:09:24 25 4
gpt4 key购买 nike

我在所有表中都有一个 is_deleted 字段,表明这条记录已被删除(但它存在于表中)。

那么如何在 SQLAlchemy 的所有查询中忽略(从不考虑)is_deleted=True 记录?

最佳答案

sqlalchemy event是解决方案!

from sqlalchemy.orm.query import Query
from sqlalchemy import event

@event.listens_for(Query, "before_compile", retval=True)
def no_deleted(query):
for desc in query.column_descriptions:
entity = desc['entity']
if entity:
query = query.filter(entity.is_deleted == False)

return query

如果您想指定模型名称(sqlalchemy 模型类名称),例如在我的例子中为“User”,请使用:

if entity == 'User':
query = query.filter(entity.is_verified == True)

关于python - 如何在所有 SQLAlchemy 的查询中实现默认条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40193259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com