2016-10-22 11 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

関連する問題