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