【问题标题】:if statement in a hybrid_property expressionhybrid_property 表达式中的 if 语句
【发布时间】:2016-03-17 15:46:50
【问题描述】:

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

【问题讨论】:

    标签: python sqlalchemy conditional


    【解决方案1】:

    你可以使用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
        )
    

    【讨论】:

      猜你喜欢
      • 2021-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多