Как сделать цикл из трех столбцов в строке в Django / python? - PullRequest
8 голосов
/ 07 декабря 2010

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

<table>
<tr><td>VALUE1</td><td>VALUE2</td><td>VALUE3</td></tr>
<tr><td>VALUE4</td><<td>VALUE5</td><td>VALUE6</td></tr>
</table>

Кто-нибудь знает, как это сделать?

Синтаксическая ошибка TemplateSyntaxError at /

Для операторов 'for' следует использовать формат 'для x в y': для i в диапазоне (0, len (all_products_list), 3)

Ответы [ 2 ]

22 голосов
/ 07 декабря 2010

Есть тег делимого на.

Так что вы можете сделать что-то (безобразное), например:

<table><tr>
{% for field in form %}
   <td>{{ field }}</td>
   {% if forloop.last %}
     </tr>
   {% else %}
     {% if forloop.counter|divisibleby:"3" %}
       </tr><tr>
     {% endif %}
   {% endif %}
{% endfor %}
</table>

В качестве альтернативы, вы могли бы дать вашему классу формы метод table_print, который возвращает строку html (в mark_safe).

0 голосов
/ 07 декабря 2010
<table>
{% for i in range(0, len(stuff), 3) %}
    <tr>
    {% for j in range(3) %}
        <td>{{ stuff[i+j] }}</td>
    {% endfor %}     
    </tr>
{% endfor %}
</table>

Извините, неправильно понял вопрос.

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