Django HTML рендеринг таблицы шаблонов - PullRequest
0 голосов
/ 25 марта 2020

Я хочу, чтобы таблица выглядела следующим образом:

<table>
  <tr>
    <td>some data</td>
    <th>special one</th>
    <td>some data</td>
      ...
    <td>some data</td>
  </tr>
  ...
</table>

Существует решение , которое может отображать все в одном теге.

<table>
  {% for rowval in results %}    
     <tr>
     {% for val in rowval %}
      <td>{{val}}</td>
     {% endfor %}
    </tr>
  {% endfor %}
</table> 

Но в моем случае для каждой строки данных на втором месте будет th, если есть запись.

Существует еще одно решение это не так хорошо, как ответ ниже, так как содержит частичную таблицу, td и tr в представлении.

Есть ли способ реализовать эту функцию?

1 Ответ

1 голос
/ 25 марта 2020

Есть несколько переменных, доступных внутри django шаблона для l oop, одна из них называется forloop.counter, что дает вам текущую итерацию l oop. Вы можете использовать эту переменную для рендеринга чего-то другого на втором l oop

<table>
  {% for rowval in results %}    
    <tr>
      {% for val in rowval %}
        {% if forloop.counter == 2 %}
          <th>{{ val }}</th>
        {% else %}
          <td>{{ val }}</td>
        {% endif %}
     {% endfor %}
    </tr>
  {% endfor %}
</table> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...