Как составить рейтинг пользователей?

У пользователей есть показатели, такие как кол-во матчей, кол-во побед и подобные.. Мне надо составить рейтинг узнать место пользователя в нём, например, по кол-ву побед, но как это сделать? Даже если отсортировать queryset по победам, то получить место пользователя по счету, как я понял, не получится. Как можно это сделать?


Ответы (1 шт):

Автор решения: arklight

Не совсем понял почему не получится? Ты можешь создать модель, скажем, UserWithStats и сделать сортировку по убыванию побед. Тогда, первый пользователь в QuerySet[] окажется победителем. Но это в случае, если у тебя нет одинакового количества побед (тогда придётся выдавать первые места нескольким людям или вводить дополнительные филды и сортировать по ним ещё)

class UserWithStats(models.Model):
    name = models.CharField(...)
    wins = models.IntegerField()
    class Meta:
        ordering = ["-wins"]
→ Ссылка