Ответ 1
Employer.objects.values('id').annotate(jobtitle_count=Count('jobtitle')).order_by('-jobtitle_count')[:5]
У меня есть две модели такие, что
class JobTitle(models.Model):
name = models.CharField(max_length=1000)
class Employer(models.Model):
jobtitle = models.ForeignKey(JobTitle,unique=False,null=True)
Как вы видите, у одного работодателя может быть много рабочих мест. Я пытаюсь сделать запрос, чтобы получить топ-5 работодателей, количество наименований рабочих мест максимально
Как я могу достичь этого Django?
Спасибо
Employer.objects.values('id').annotate(jobtitle_count=Count('jobtitle')).order_by('-jobtitle_count')[:5]
from django.db.models import Count
Employer.objects.annotate(Count('jobtitle')).order_by('-jobtitle__count')[:5]