查询Django中的前x个元素

brs*_*gic 30 django django-models

我有两个模型

class JobTitle(models.Model):
     name = models.CharField(max_length=1000)

class Employer(models.Model): 
     jobtitle = models.ForeignKey(JobTitle,unique=False,null=True)
Run Code Online (Sandbox Code Playgroud)

如你所见,一个雇主可能有很多职位.我试图询问前五名雇主的职位数量最多的雇主

我怎么能得到这个是Django?

谢谢

DrT*_*rsa 43

Employer.objects.values('id').annotate(jobtitle_count=Count('jobtitle')).order_by('-jobtitle_count')[:5]
Run Code Online (Sandbox Code Playgroud)

  • 甚至更好:https://docs.djangoproject.com/en/dev/topics/db/aggregation/ (2认同)

Jj.*_*Jj. 9

from django.db.models import Count

Employer.objects.annotate(Count('jobtitle')).order_by('-jobtitle__count')[:5]
Run Code Online (Sandbox Code Playgroud)