Рейтинг баллов Django
<Вот скриншот, как выглядит моя таблица в настоящее время
Я сделал представления Rank, в котором поле wins сортируется в обратном порядке. Затем цикл от 1 до количества строк в базе данных. На каждой итерации i присваивается aaa[i - 1].rank. Обновленные данные передаются в словарь и отображаются на странице с помощью шаблона rank_templ.html. Замените префикс 'samplesite' в строке 'samplesite/rank_templ.html' на название вашего приложения.
То есть, в моем случае, когда я перехожу по адресу: http://localhost:8000/samplesite/rank/
происходит сортировка, обновляется база данных, после чего отображается страница.
urls.py
from django.urls import path
from .views import *
urlpatterns = [
path("rank/", Rank),
]
views.py
from .models import BeerPongRankingTable
def Rank(request):
aaa = BeerPongRankingTable.objects.order_by('-wins')
for i in range(1, len(aaa) + 1):
aaa[i - 1].rank = i
aaa[i - 1].save()
print('aaa[i].wins', aaa[i-1].wins, type(aaa))
context = {'fff': aaa}
return render(request, 'samplesite/rank_templ.html', context)
rank_templ.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
</head>
<body>
{% for aa in fff %}
<p>{{aa.rank}}</p>
<p>{{aa.username}}</p>
{% endfor %}
</body>
</html>