Запрос на топ х элементов в Джанго - PullRequest
30 голосов
/ 22 июня 2011

У меня две модели такие, что

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

class Employer(models.Model): 
     jobtitle = models.ForeignKey(JobTitle,unique=False,null=True)

Как видите, у одного работодателя может быть много рабочих мест. Я пытаюсь сделать запрос, чтобы получить 5 лучших работодателей, чье количество должностей максимально

Как мне добиться этого Джанго?

Спасибо

Ответы [ 2 ]

42 голосов
/ 22 июня 2011
Employer.objects.values('id').annotate(jobtitle_count=Count('jobtitle')).order_by('-jobtitle_count')[:5]
4 голосов
/ 22 июня 2011
from django.db.models import Count

Employer.objects.annotate(Count('jobtitle')).order_by('-jobtitle__count')[:5]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...