2012-04-21 41 views
13

Tôi có một mô hình với trường is_deleted, bây giờ tôi muốn tất cả các dạng truy vấn cho mô hình này luôn lọc theo is_deleted = False ngoài bất kỳ đối số lọc nào được truyền tới .filter và .filter_by.Bộ lọc mặc định của SQLAlchemy

Trong Django, tôi thường ghi đè người quản lý và thêm bộ lọc của riêng mình nhưng tôi cần trợ giúp cho SQLAlchemy.

UPDATE:

tôi đã kết thúc lên làm như sau:

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

Nó hoạt động nhưng nếu tôi có nhiều lĩnh vực sau này tôi tưởng tượng tôi sẽ có thêm điều kiện hơn, có phải là một cách để làm điều này ở cấp mô hình.

+0

bạn muốn nói chính xác "mức mô hình" là gì? bạn có thể minh họa một ví dụ về cách bạn muốn nó trông như thế nào? – zzzeek

Trả lời

Các vấn đề liên quan