Как получить наиболее часто встречающегося пользователя в таблице в Django

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

class Invite(models.Model):
    host_name = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET_NULL)
    invite = models.CharField(max_length=200, null=True,blank=True)
    def __str__(self):
        return self.name```

    

Все, что вам нужно сделать, это импортировать Count. Подсчитать имя_хоста объектов Invite(). И после получить единственное имя_хоста, упорядочив его по обратному принципу

Веселитесь!

from django.db import Count

Invite.objects.annotate(num_likes=Count('host_name')).filter(host_name__gt=).order_by('-host_name')[:1]

вот модификация решения Энеса, которая сработала для меня

 user_with_highest_sent_out_invite = User.objects.annotate(num_of_invites=Count('invite__host_name')).order_by('-num_of_invites')[0]

однако, когда есть ничья, он берет первый объект, как указано выше

Вернуться на верх