2012-04-21 7 views
13

フィールドがis_deletedのモデルがあります。このモデルのすべての形式のクエリは、フィルタの引数が.filterと.filter_byに渡されるだけでなく、常にis_deleted = Falseでフィルタリングされます。SQLAlchemy既定のフィルタ

Djangoでは、通常、マネージャをオーバーライドして自分のフィルタを追加しますが、SQLAlchemyのヘルプが必要です。

UPDATE:

私が終わったアップやっ以下:

class CustomQuery(Query): 
    def __new__(cls, *args, **kwargs): 
     if args and hasattr(args[0][0], "is_deleted"): 
      return Query(*args, **kwargs).filter_by(is_deleted=False) 
     else: 
      return object.__new__(cls) 
session = scoped_session(sessionmaker(query_cls=CustomQuery)) 

それは動作しますが、私は、後に複数のフィールドを持っている場合、私はそこになければならない、私はより多くの条件を追加する必要があります想像しますモデルレベルでこれを行う方法です。

+0

で、ここで、まさにこのレシピを持っていますか?どのように見たいかの例を説明できますか? – zzzeek

答えて

関連する問題