外键计数django的线性和

时间:2017-06-15 16:49:57

标签: python django python-3.x

我的模型中有一个配置文件类,如下所示:

class UserProfile(models.Model):
    first_name = ....
    ....

我还有两个具有配置文件模型外键的类:

class A(models.Model):
    profile = models.ForeignKey(UserProfile)
    ....

class B(models.Model):
    profile = models.ForeignKey(UserProfile)

现在我想过滤活跃用户。我想要像下面这样的东西。但是我不知道如何在django中做到这一点!

UserProfile.objects.filter((2*count(A) + count(B))__gte=10).all()

1 个答案:

答案 0 :(得分:1)

首先需要在查询集上使用annotate来运行计算,然后您可以按它进行过滤。

from django.db.models import Count

UserProfile.objects.annotate(
    score=2*Count('a') + Count('b')
).filter(score__gte=10)