我有一个 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
    )

关于python - hybrid_property 表达式中的 if 语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34228471/

10-09 07:28
查看更多