Рейтинг баллов 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> 
Вернуться на верх