class Goods(Base): id = Column(Integer, primary_key=True, autoincrement=True, comment='id') flag = Column(JSON) sort = Column(Integer) create_time = Column(TIMESTAMP(True), server_default=func.now()) update_time = Column(TIMESTAMP(True), nullable=False, server_default=func.now()) delete_time = Column(TIMESTAMP(True))
给Goods类统计delete_time属性, 如果为None即正式,有时间就是别删除的了,
改写sqlalchemy得filter_by方法。
class Query(BaseQuery): def filter_by(self, **kwargs): if hasattr(self.statement.columns, 'delete_time'): if 'delete_time' not in kwargs.keys(): kwargs['delete_time'] = None return super(Query, self).filter_by(**kwargs)
用hasattr函数判断self.statement.columns是否存在delete_time这个属性,如果存在添加一条kwargs['delete_time'] = None的查询条件。