我is_deleted在所有表中都有一个字段,该字段表明该记录已被删除(但它存在于表中)。
那么,如何忽略(从未考虑)is_deleted=TrueSQLAlchemy中所有查询中的记录?
sqlalchemy 事件是解决方案!
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
Run Code Online (Sandbox Code Playgroud)
如果要指定模型名称(sqlalchemy模型类名称),例如“ User”,请使用以下命令:
if entity == 'User':
query = query.filter(entity.is_verified == True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
440 次 |
| 最近记录: |