Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python sqlalchemy中hybrid_属性的嵌套关系_Python_Sqlalchemy - Fatal编程技术网

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