[英]if statement in a hybrid_property expression
我有一个hybrid_property
执行一些条件并返回一个响应。 我希望能够查询这个字段,所以我创建了一个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
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.