SQLALCHEMY:将hybrid属性与hybrid方法一起使用

SQLALCHEMY:将hybrid属性与hybrid方法一起使用,sqlalchemy,flask-sqlalchemy,Sqlalchemy,Flask Sqlalchemy,我有下面的一段代码,一个DB模型和一些混合属性和方法 class MyModel(DeclarativeBase): """ MyModel Table. """ __tablename__ = 'my_model' x = Column(DateTime, nullable=False) y = Column(DateTime, default = date(1970,1,1), nullable=False) z =

我有下面的一段代码,一个DB模型和一些混合属性和方法

class MyModel(DeclarativeBase):
"""
MyModel Table.
"""
__tablename__ = 'my_model'

x =       Column(DateTime, nullable=False)
y = Column(DateTime, default = date(1970,1,1), nullable=False)
z = Column(DateTime, default = date(1970,1,1), nullable = False)

@hybrid_method
def did_not_run_since(self, days_since):        
    return self.x <= datetime.utcnow() - timedelta(days = days_since)

@hybrid_method
def did_not_run_since_y(self, days_since):        
    return self.y_hybr <= datetime.utcnow() - timedelta(days = days_since)

@hybrid_method
def did_not_run_since_z(self, days_since):        
    return self.z_hybr <= datetime.utcnow() - timedelta(days = days_since)

@hybrid_property
def y_hybr(self):
    return self.x if self.y == datetime(1970,1,1) else self.y

@hybrid_property
def z_hybr(self):
    return self.x if self.z == datetime(1970,1,1) else self.z
在我的数据库中,我有许多来自y、z列的条目,它们是01-01-1970,但据我所知,尽管混合_属性y_hybr、z_hybr,如果它们是01-01-1970,则应将它们替换为x值。但不知何故,当我使用混合方法时,这部分缺失/未被评估

我做错了什么? 我真的可以在混合方法中使用混合属性吗? 我是否必须始终为每个混合方法/表达式定义一个表达式

提前谢谢

   session.query(MyModel).filter(MyModel.did_not_run_since_y(40) == True).count()