hybrid_property 表达式中的 if 语句
if statement in a hybrid_property expression
我有一个 hybrid_property
执行一些条件和 returns 响应。我希望能够针对该字段进行查询,因此我创建了一个 expression
。但是,我不确定如何为这种用例编写条件。
如何编写一个表达式,根据条件的结果将两个字段之一与另一个字段相乘?
@hybrid_property
def func(self):
if self.some_column is True:
return self.true_column * self.amount
return self.false_column * self.amount
@func.expression
def func(cls):
# ???
return
你可以使用case表达式
from sqlalchemy import case
@func.expression
def func(cls):
return case(
[
(cls.some_column == True, cls.true_column * cls.amount),
],
else_=cls.false_column * cls.amount
)
我有一个 hybrid_property
执行一些条件和 returns 响应。我希望能够针对该字段进行查询,因此我创建了一个 expression
。但是,我不确定如何为这种用例编写条件。
如何编写一个表达式,根据条件的结果将两个字段之一与另一个字段相乘?
@hybrid_property
def func(self):
if self.some_column is True:
return self.true_column * self.amount
return self.false_column * self.amount
@func.expression
def func(cls):
# ???
return
你可以使用case表达式
from sqlalchemy import case
@func.expression
def func(cls):
return case(
[
(cls.some_column == True, cls.true_column * cls.amount),
],
else_=cls.false_column * cls.amount
)