Пожалуйста, есть ли способ сделать мой django страницы пагинации с викторины App?

Моя проблема заключается в пагинации страницы на Django quiz App, когда я нажимаю на следующий вопрос, он снимает выбор с предыдущего выбранного ввода и записывается только один ответ.

Коды форм:

<form action="/calculate_marks" onsubmit="return saveAns()" enctype="multipart/form-data" id ='quiz' method="POST">
  {% csrf_token %}
  <input type="hidden" name="csrfmiddlewaretoken" value="C24rUotmdHawVQJL3KrqiWxvti8UffOFYUc8TRbZtLt36AVLdP3jbkzUVe3beRAa">
    <h1>{{course}} Quiz</h1><br>
    <h4>Number of Questions in the Quiz: {{q_count}}</h4>
    <hr>
    <p>pages {{page_obj}}</p>
    <hr>
  {% for q in  page_obj %}
  
<!-- <h6 style="text-align: right;">[marks {{q.marks}}]</h6> -->
{% if q.img_quiz.url %}
<div  class="text-center" ><img src="{{q.img_quiz.url}}" width="100%" height="300px" alt=""> </div><br>
{% endif %}

<div style="border: 2px dotted green;" class="container shadow-lg mb-1 bg-white rounded">
<p class="d-flex" style="overflow-x: auto; white-space: pre-wrap; font-size: 20px;font-family: sans-serif;" >
{{ q.question }}</p>
{% if q.marks %} 
<h6 style="text-align: right;">[marks {{q.marks}}]</h6>
{% endif %}
</div>
{% if q.option1 %}
  <div  class="card-header shadow-lg mb-1 bg-white rounded">
  <input   type="radio" name="{{forloop.counter}}" id="{{q.option1}}"  value="Option1">
 <label for="option1"> {{q.option1}}</label><br>
</div>
{% endif %}

  {% if q.option2 %}
  <div class="card-header shadow-lg mb-1 bg-white rounded">
  <input   type="radio" name="{{forloop.counter}}" id="{{q.option2}}"  value="Option2">
  <label for="option2">{{q.option2}}</label><br>

</div>
{% endif %}

{% if q.option3 %}
<div class="card-header shadow-lg mb-1 bg-white rounded">
  <input  type="radio" name="{{forloop.counter}}" id="{{q.option3}}"  value="Option3">
  <label for="option3">{{q.option3}}</label><br> 
</div>
{% endif %}

{% if q.option4 %}
<div class="card-header shadow-lg mb-1 bg-white rounded">
  <input  type="radio" name="{{forloop.counter}}" id="{{q.option4}}"  value="Option4">
  <label  for="option4">{{q.option4}}</label><br>
</div>
{% endif %}
<br><br>
{% empty %}
<h1 class="card text-center text-danger">No Exam Available Yet. CHECK LATER</h1>
  {% endfor %}

  <input  class="btn btn-primary" type="submit" value="Next Subject">
   
</form>

вычислить коды представления метки. Здесь я получаю входные данные из шаблона и передаю их в представление:

def calculate_marks_view(request):
    if request.COOKIES.get('course_id') is not None:
        course_id = request.COOKIES.get('course_id')
        course=QMODEL.Course.objects.get(id=course_id)
        
        total_marks=0
        questions=QMODEL.Question.objects.all().filter(course=course)
        for i in range(len(questions)):
            
            selected_ans = request.COOKIES.get(str(i+1))
            actual_answer = questions[i].answer
            if selected_ans == actual_answer:
                total_marks = total_marks + questions[i].marks
        student = Student.objects.get(user_id=request.user.id)
        result = QMODEL.Result()
        result.marks=total_marks
        result.exam=course
        result.student=student
        result.save()

        return HttpResponseRedirect('take-exam')
    else:
        return HttpResponseRedirect('take-exam')

Яваскрипты, которые собирают входные ответы:

<script> 
  function saveAns(){  

      var ele = document.getElementsByTagName('input'); 
      for(i = 0; i < ele.length; i++) { 
          if(ele[i].type="radio") { 
              if(ele[i].checked){        
                setCookie(ele[i].name,ele[i].value,3)
              }
          } 
      } 
        
  }
  
  function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+ d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
</script>

Коды пагинации:

<!-- pagination codes star -->

{% if page_obj.has_other_pages %}
<div class="container" id = ''>
<nav class="d-flex" aria-label="Page navigation example">

  <ul class="pagination  pagination-sm flex-wrap justify-content-center">
    {% if page_obj.has_previous %}
      <li class=" page-item"><a  class="continue page-link badge bg-primary rounded-pill" href="?page={{ page_obj.previous_page_number }}">previous &laquo;</a></li>
    {% else %}
      <li class="page-item disabled"><span>&laquo;</span></li>
    {% endif %}
    {% for i in page_obj.paginator.page_range %}
      {% if page_obj.number == i %}
        <li class="page-item active" aria-current="page"><span><a class="page-link" href="">{{ i }}</a></span></li>
      {% else %}
        <li class="page-item"><a class="continue page-link" href="?page={{ i }}">{{ i }}</a></li>
      {% endif %}
    {% endfor %}

    {% if page_obj.has_next %}
      <li class="page-item"><a class="page-link badge bg-primary rounded-pill" href="?page={{ page_obj.next_page_number }}"> next &raquo;</a></li>
    {% else %}
      <li class="page-item disabled"><span>last &raquo; </span></li>
    {% endif %}
  </ul>
</nav>
</div>
Вернуться на верх