繁体   English   中英

if语句在hybrid_property表达式中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM