Python sqlalchemy中hybrid_属性的嵌套关系
我有一个Python sqlalchemy中hybrid_属性的嵌套关系,python,sqlalchemy,Python,Sqlalchemy,我有一个@hybrid\u属性,它引用了一个嵌套关系self.restitution\u type.restitution\u base\u type.name=='QSR'。它在位置对象上工作,如在assert Location.is_qsr==True中,但不在过滤器中。我已尝试添加一个@is_qsr.expression函数,但都无法正常工作。如何启用诸如query(Location).filter(Location.isqsr==True)之类的筛选器 您可以在关系上使用: @is_qs
@hybrid\u属性
,它引用了一个嵌套关系self.restitution\u type.restitution\u base\u type.name=='QSR'
。它在位置对象上工作,如在assert Location.is_qsr==True
中,但不在过滤器中。我已尝试添加一个@is_qsr.expression
函数,但都无法正常工作。如何启用诸如query(Location).filter(Location.isqsr==True)
之类的筛选器
您可以在关系上使用:
@is_qsr.expression
def is_qsr(cls):
return cls.establishment_type.has(
EstablishmentType.establishment_base_type.has(
EstablishmentBaseType.name == "QSR"))
这并不能产生世界上最有效的查询(它确实存在一个(从…
中选择1)),但是一个优秀的优化器应该能够找到它
@is_qsr.expression
def is_qsr(cls):
return cls.establishment_type.has(
EstablishmentType.establishment_base_type.has(
EstablishmentBaseType.name == "QSR"))