Python 如何根据关系字段上的条件进行聚合排序

Python 如何根据关系字段上的条件进行聚合排序,python,django,django-models,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

我的代码:

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)
如何获得按本科生数量排序的学校查询集

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

请参阅关于
aggregate
filter
之间关系的条款。

如果我错了,请纠正我的错误,但这不只是返回至少有1名本科生的学校吗?有没有一种方法可以将所有的学校进行分类,首先是按本科生的数量,然后按毕业生的数量进行排名?我接受这个答案,因为它确实回答了我最初的问题。我将单独提出第二个问题。谢谢:-)