簡體   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