Получение наибольшего количества лайков пользователей с помощью Django
class Profile(models.Model):
..
goldcoin = models.IntegerField(default=0)
likes = models.ManyToManyField(User, blank=True, related_name='user_like')
dislikes = models.ManyToManyField(User, blank=True, related_name='user_dislike')
def __str__(self):
return self.user.username
def get_avatar(self):
..
от likes = models.ManyToManyField(User, blank=True, related_name='user_like')
Как получить наибольшее количество лайков пользователя?
Пример, у меня есть такой пользователь
- User Likes
- Jhon 30
- Аиш 25
- Джош 5
- Адам 50
Выход
- User Likes
- Адам 50
- Джон 30
- Аиш 25
- Джош 5
Django 4.0.6 Python 3.10.2
Вы можете собрать общее количество лайков, используя Count
, а затем упорядочить набор запросов по общему количеству лайков следующим образом:
from django.db.models import Count
profiles = Profile.objects.annotate(total_likes=Count('likes')).order_by('total_likes')