2017-05-26 3 views
0

モデル定義で計算フィールドを作成するにはどうすればよいですか?生成されたSQLクエリ内で計算を実行することは可能ですか?次のfruit_differenceは達成したいピーウェーモデルのメンバーになります。peeweeで計算フィールドを行う方法は?

SELECT 
    apple_count, 
    orange_count, 
    (apple_count - orange_count) fruit_difference 
FROM fruit_vendors 

答えて

0

私はあなたが必要と思うのはプロパティです。 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で実行されます。 Intervalクラスを介して呼び出されると、適切なSQLが取得されます。

関連する問題