例如某些型号:
class Foo(models.Model):
a = models.FloatField()
b = models.FloatField()
@property
def c(self):
return self.a / self.b
我们希望在QuerySet中找到最小值:
bar = Foo.objects.aggregate(Min('c'))
但是这不起作用,因为c
不在数据库中而且无法从db中获取。如何获得c
的最小值Foo
?
答案 0 :(得分:2)
您必须在查询本身内部执行逻辑,而不是在Python中评估的属性。这样的事情应该有效:
from django.db.models import F, Min
bar = Foo.objects.annotate(c=F('a') / F('b')).aggregate(Min('c'))