使用GROUP BY queryset的Django INNER JOIN

时间:2013-07-16 22:48:31

标签: python sql django django-models

如何在Django中获取以下SQL查询集?

SELECT abbreviation, COUNT(tat_value) FROM t_tat 
INNER JOIN t_tests ON t_tat.test_id = t_tests.test
GROUP BY test

这些是我的班级模特:

class tat(models.Model):
    test = models.ForeignKey(tests)
    tat_value
    ...

class tests(models.Model):
    test = models.IntegerField(primary_key=True, default=0)
    ...

1 个答案:

答案 0 :(得分:0)

django annotation功能会执行此操作:

from django.db.models import Count
tests.objects.annotate(Count('tat'))

(可选)使用values_list选择缩写和计数,如果这很重要的话。