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