Увеличение значения в цикле while на основе ранга

В настоящее время я работаю над приложением Django, в котором пользователь может отслеживать сыгранные раунды гольфа и сравнивать их с друзьями.

Некоторые сведения об этом: Каждый игрок имеет гандикап, который дает ему количество дополнительных ударов на каждом поле, на котором он играет. Эти дополнительные удары распределяются по всем лункам в зависимости от сложности лунки (называется HCPI, номер лунки не равен ее HCPI). Например, вы играете на поле с 18 лунками. Если вы получили 18 дополнительных ударов, то они одинаково прибавляются к номиналу каждой лунки. Если вы получили 20 дополнительных ударов, то один удар добавляется к номиналу лунки 1-18 и по одному удару добавляется к номиналам лунок 1 и 2. И так далее.

В настоящее время я застрял на добавлении дополнительных ударов на текущем номинале. Кажется, что для решения проблемы нужен цикл while-loop и немного javascript. Но мне интересно, не ошибается ли вся моя схема? Поскольку я хочу позже добавить всю таблицу в базу данных, возможно, лучшим решением будет добавить дополнительные удары там. Любой вклад будет оценен по достоинству, поскольку я хотел бы иметь решение, при котором пользователь не будет перенаправляться каждый раз. Например: Я также хотел иметь выпадающий список, который отображает соответствующий курс и таблицу, добавленные здесь на той же странице, но не смог этого сделать. Теперь пользователь выбирает в выпадающем списке курс и попадает на html-страницу в этом посте.

В моем приложении пользователь выбирает курс для добавления оценки и перенаправляется на этот html-сайт с полем ввода для дополнительных штрихов, которые необходимо отредактировать:

<div class="container">
<h5>{{ id.name }}</h5>
<form>
Extra strokes:
<input type="number" min="0">
<input type="submit" class="btn btn-primary" value="Apply"><
</form>
</div>

<div class="container">
        <!--Table-->
        <table class=table>
            <!--Header-->
            <thead>
                <td>Hole</td>
                <td>HCPI</td>
                <td>Par</td>
                <td>Adjusted</td>
                <td>Score</td>
            </thead>
            <!--Row with for loop-->
            {% for hole in course %}
            <tr>
                <td>{{ hole.hole }}</td>
                <td>{{ hole.holehcpi }}</td>
                <td>{{ hole.holepar }}</td>
                <td id="adjusted{{ forloop.counter }}"></td>
                <td></td>
            </tr>
            {% endfor %}
    </table>
</div>

В настоящее время мой views.py выглядит следующим образом:

def scorecard(request, id):
    id = CourseOverview.objects.get(course_id=id)
    course = Course.objects.filter(course_id=id)
    return render(request, "mrc/scorecard.html", {
        "id": id,
        "course": course
    })
Вернуться на верх