我的模型中有一个配置文件类,如下所示:
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()
答案 0 :(得分:1)
首先需要在查询集上使用annotate
来运行计算,然后您可以按它进行过滤。
from django.db.models import Count
UserProfile.objects.annotate(
score=2*Count('a') + Count('b')
).filter(score__gte=10)