2016-10-22 3 views

답변

3

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의 모델 클래스 이름)을 지정하려면 :

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

는 필터링이 원시 SQL/코어 수준에서 수행 할 수 있습니까? 특정 쿼리 유형을 필터링하고 대체하려는 방언에서 말합니까? 내 특정 문제는 datetimes입니다 - https://stackoverflow.com/questions/46027152/which-part-of-sqlalchemys-dialect-is-responsible-for-pre-processing-queries – Jay

관련 문제