Цикл for для заполнения таблицы шаблонов django

I'm trying to make a table in Django template. I'm sending a dict as my data inside my views.py like this:

    data = {
    "year_most_launches": result_launches,
    "launch_sites":result_sites,
    "launches_2019_2021":result_2019_2021
    }
return render(request,"main/launches.html", {"data":data})

Моя таблица в HTML-коде:

            <table class="table">
            <thead>
                <tr>
                    <th>Year with most launches</th>
                    <th>Launch site with most launches</th>
                    <th>Number of launches between 2019 and 2021</th>
                </tr>
            </thead>
            <tbody>
                {% for element in data.values %}
                <tr>
                    <td>{{ element }}</td>
                </tr> 
                {% endfor %} 
            </tbody>
        </table>

Моя проблема заключается в том, что значения данных появляются только в первом столбце, создавая 3 строки вместо того, чтобы появляться только в первой строке.

table

Как я могу это решить? Это проблема внутри моего html?

Ваша HTML таблица создает новую строку (<tr>) для каждого элемента, то, что вы хотите, это создать новую ячейку, (<td>) для каждого элемента, как это:

<table class="table">
  <thead>
      <tr>
          <th>Year with most launches</th>
          <th>Launch site with most launches</th>
          <th>Number of launches between 2019 and 2021</th>
      </tr>
  </thead>
  <tbody>

      <tr>
        {% for element in data.values %}
          <td>{{ element }}</td>
        {% endfor %}
      </tr>

  </tbody>
</table>

Конечно, это даст только ОДИН ряд, что может быть то, что вы хотите, но если бы вы хотели получить несколько рядов, вам бы понадобилось два цикла, внешний для каждого <tr> и внутренний для каждого <td>.

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