我有一张表,比如下面这样的
class Person(models.Model):
name = models.CharField(max_length=128)
school = models.CharField(max_length=128)
我想制作一个查询,即统计 school 字段,出现最多数量的 school 排在前面,比如
a 是 学校 P
b 是 学校 K
c 是 学校 K
d 是 学校 L
e 是 学校 K
我想返回 b[K],c[K],e[K],a[P],d[L] 这样的排序
通过查阅资料,我找到了下面这样的方法
Person.objects.values('school').order_by('school__count').annotate(Count('school'))
它可以执行排序,但是有一点,它返回的是 dict 类型,我后续无法处理
如果我把 values 换成 all,school__count 属性就全部都是 1,(大部分资料里,这个字段填的都是外键)
请问,我如何构建查询语言,去拿到一个 Person object queryset 而不是字典?
最后,今天是大年初一,大家过年好,大伙儿要是有时间的话,请不吝赐教,多谢了。