Как перебирать строки и заполнять столбцы, используя данные из базы данных в HTML и Django - PullRequest
0 голосов
/ 24 апреля 2019

У меня проблема с тем, что данные, которые я пытаюсь ввести в таблицу, не отображаются должным образом. Я считаю, что мои расценки верны, так как они выдают правильную информацию, когда я их проверяю, но когда я пытаюсь распечатать их в таблице, они распечатывают неправильно.

https://imgur.com/a/5u9jQW2

Я безуспешно пытался возиться с разными циклами for, разными типами HTML-тегов.

<div class="table-responsive">
          <table class="table align-items-center table-flush">
             <thead class="thead-light">
                <tr>
                   <th scope="col"> Student</th>
                   {%  for Date in class_dates %}

                   <th scope="col">{{Date.date}}</th>

                   {% endfor %}
                   </thead>
                  </tr>



        <tbody>
          {% for students in all_students %} 
          <tr>

              <th scope="row">
                <div class="media-body">

                  <a href="/student/" class="mb-0 text-sm">{{students.student_name}} </a>


                </div>
            </th>
            <td>
           {%  for date in class_dates %}


              {% ifequal date.dates attendance.date %}

              {{students.status}}
            {% endifequal %}
           </td>
           {% endfor %}  
           {% endfor %}



          </tr>
        </tbody>



        </table> 

Это только печатает даты 7 апреля снова и снова для всех других дат. Поскольку есть только два студента, кажется, что для каждого студента требуется только одно свидание. У каждой другой даты должен быть свой статус. Содержание, которое печатают запросы, является правильным.

Обновление: здесь запросы

class_dates = Class.objects.filter(course=301)

all_students = Student.objects.select_related().raw('SELECT * '
                                                        'FROM students as S, classes as CL, attendances as A '
                                                        'WHERE CL.course_id = 301 AND S.student_id = A.students '
                                                        'AND CL.course_id = A.classes AND CL.date = A.date '
                                                        'GROUP BY student_name'
                                                         )
status = Student.objects.select_related().raw('SELECT   A.*'
                                                        'FROM students as S, classes as CL, attendances as A '
                                                        'WHERE CL.course_id = 301 AND CL.course_id = A.classes '
                                                        'AND CL.date = A.date '
                                                        'GROUP BY A.id'
                                                        'ORDER BY A.students'
                                                        )   

all_students - то, что перечисляет студентов, и все class_dates - то, что перечисляет даты в заголовке. Статус - это то, что должно быть заполнено в таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...