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.
Co to znaczy dokładnie „poziom model”? czy możesz zilustrować przykład tego, jak chcesz wyglądać? – zzzeek