我成功地使用了以下内容(带有真实的方法主体)
db.query(Run).filter(Run.permitted)
class Run(Run):
@hybrid_property
def permitted(self):
pass
@permitted.expression
def permitted(cls):
pass
执行查询,例如。
db.query(Run).filter(Run.permitted)
我想做类似的事情,但是传入参数以影响查询。我尝试过:
class Run(Run):
@hybrid_property
def permitted(self,tag_set):
pass
@permitted.expression
def permitted(cls,tag_set):
pass
但这会导致我每次致电时都出错
例如:
db.query(Run).filter(Run.permitted(""))
导致以下错误。
TypeError:allowed()缺少1个必需的位置参数:“ tag_set”
我在想问题是属性和表达式不希望使用参数,我使用@hybrid_method尝试了一些操作,但未成功。有没有办法做到这一点(将参数传递给混合属性/表达式)或类似的构造?