如何通过聚合与关系字段的条件进行排序

时间:2010-06-26 17:51:49

标签: python django django-models

我的代码:

class School(models.Model): pass

class Student(models.Model):
    school = models.ForeignKey(School)
    TYPE_CHOICES = (
        ('ug', 'Undergraduate'),
        ('gr', 'Graduate'),
        ('al', 'Alumnus'),
    )
    type = models.CharField(max_length=2)

如何获得按本科学生人数排序的学校查询集?

1 个答案:

答案 0 :(得分:0)

from django.db.models import Count
School.objects.filter(student__type='ug').annotate(
                      num_students=Count('student')
                     ).order_by('num_students')

有关aggregatefilter条款之间关系的documentation,请参阅。