2012-04-21 14 views
13

Mam model z polem is_deleted, teraz chcę, aby wszystkie formy zapytań dla tego modelu zawsze filtrowały według is_deleted = False oprócz argumentów filtrujących przekazywanych do .filter i .filter_by.Domyślny filtr SQLAlchemy

W Django normalnie przesłonię menedżera i dodaję własne filtrowanie, ale potrzebuję pomocy dla SQLAlchemy.

UPDATE:

skończyło się w następujący sposób:

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)) 

To działa, ale jeśli mam więcej pól później Wyobrażam Muszę dodać więcej warunek, że musi być sposobem, aby to zrobić na poziomie modelu.

+0

Co to znaczy dokładnie „poziom model”? czy możesz zilustrować przykład tego, jak chcesz wyglądać? – zzzeek

Odpowiedz

Powiązane problemy