2016-08-31 11 views
0

いくつかのモデル:私たちはクエリセットに最小限の値を見つけたいモデルのプロパティに基づいてQuerySetを集計する方法は?例えば

class Foo(models.Model): 
    a = models.FloatField() 
    b = models.FloatField() 

    @property 
    def c(self): 
     return self.a/self.b 

そして:

bar = Foo.objects.aggregate(Min('c')) 

は、しかし、これはcためではないデータベースでは、動作しませんからフェッチすることはできませんdb。最小値を得る方法cFooですか?

答えて

2

Pythonで評価されるプロパティではなく、クエリ自体の内部でロジックを実行する必要があります。このようなものはうまくいくはずです:

from django.db.models import F, Min 

bar = Foo.objects.annotate(c=F('a')/F('b')).aggregate(Min('c')) 
関連する問題