Django外键计数查询

时间:2015-04-12 08:54:01

标签: django django-models

我的模型AB是这样的:

class B(models.Model):
    x_count = models.IntegerField()
    y_count = models.IntegerField()

class A(models.Model):
    name = models.CharField()
    b = models.ForeignKey(B)

我正在尝试查询A b的所有x_count个实例,其中y_countSELECT A.name FROM A, B WHERE A.b = B.id AND B.x_count + B.y_count > 0的总和为零。像

这样的东西

{{1}}。我怎么能在Django中做到这一点?

1 个答案:

答案 0 :(得分:0)

https://docs.djangoproject.com/en/1.8/topics/db/queries/#filters-can-reference-fields-on-the-model可能会有所帮助。

您可以使用它们“将模型字段的值与同一模型上的另一个字段进行比较。”

所以你的查询可能看起来像这样(未经测试)

from django.db.models import F
A.objects.filter(x_count=-F('y_count'))