Дублирование флажка в шаблоне Django

Я создаю веб-приложение и столкнулся с проблемой, которую не могу исправить: в моем приложении есть список фильмов, и у каждого фильма есть маленький флажок, который показывает пользователю, видел он или нет упомянутый фильм. Все работает нормально, каждый пользователь может отмечать/отмечать свои фильмы. Проблема начинается, когда пользователь отмечает более одного фильма: если отмечен один/не один фильм, все работает нормально, когда пользователь отмечает более 2 фильмов, флажки начинают дублироваться, так что если у меня отмечено 5 фильмов, у меня будет 5 флажков для каждого фильма. Я знаю, где проблема, но не знаю, как ее решить. Правда, я потратил более 2 дней на обдумывание возможного решения, но у меня ничего не получается. Надеюсь, вы мне поможете!

    <form action="" method="POST">
        {% csrf_token %}
        <div class="row">
            {% for film in films %}
            ...
                        {% if user.seen.all %}
                            {% for film2 in user.seen.all %}
                                <input class="form-check-input" type="checkbox" id="check_seen" name="check_seen" value="{{film.pk}}" {% if film2.name == film.name %}checked{% endif %}>
                            {% endfor %}
                        {% elif not user.seen.all %}
                            <input class="form-check-input" type="checkbox" id="check_seen" name="check_seen" value="{{film.pk}}">
                        {% endif %}
                    (little save button)...
    </form>

По сути, здесь происходит следующее: Я делаю цикл внутри списка фильмов, печатаю их на экране с изображением/названием/описанием, а затем, чтобы напечатать флажок, я делаю цикл внутри списка фильмов, просмотренных пользователем, и, если названия одинаковые, я печатаю отмеченный флажок, иначе пустой. Я понял, что ошибка заключается в том, что когда у меня более одного просмотренного фильма, то цикл будет повторяться x раз и создаст x флажков, но я не знаю, как это исправить!

enter image description here

Вернуться на верх