0
如何在模型定義中計算字段?是否有可能在生成的SQL查詢中執行計算?以下fruit_difference
將是我想要實現的peewee模型中的成員。如何在peewee中計算字段?
SELECT
apple_count,
orange_count,
(apple_count - orange_count) fruit_difference
FROM fruit_vendors
如何在模型定義中計算字段?是否有可能在生成的SQL查詢中執行計算?以下fruit_difference
將是我想要實現的peewee模型中的成員。如何在peewee中計算字段?
SELECT
apple_count,
orange_count,
(apple_count - orange_count) fruit_difference
FROM fruit_vendors
我覺得你需要的是一個屬性。如果你使用Python內置的屬性,它將在Python中進行評估。如果你想在數據庫級別上執行它,我想你應該使用Hybrid Property。
這是從文檔一個很好的例子:
class Interval(Model):
start = IntegerField()
end = IntegerField()
@hybrid_property
def length(self):
return self.end - self.start
@hybrid_property
def radius(self):
return abs(self.length)/2
@radius.expression
def radius(cls):
return fn.ABS(cls.length)/2
什麼是整齊的是,無論是半徑實現參考 長度混合屬性!當通過Interval實例訪問時,半徑計算將在Python中執行。當通過間隔類調用 時,我們將獲得適當的SQL。