@kyklaed

Как вывести таблицу в *.html?

Привет, подскажите у меня есть модель с полями из которых мне надо сделать таблицу в хтмл

хотелось бы ее делать как то вот так, что бы таблица строилась в 4 столбика. как это с делать?

{% for field in fields %} #fields содержит список названий полей 
        {% for key, value in dict_fields.items %} #dict содержит и названия полей и их значения 
            {% if key == field.name%}
                <table>
                <tr><th>{{ field.name }}</th></tr>
                <tr><td>{{value}}</td></tr>
                </table>
            {% endif %}
        {% endfor %}
  • Вопрос задан
  • 172 просмотра
Решения вопроса 1
@javedimka
Хочу сока
Подготовить данные во вьюхе чтобы с ними было удобно работать в темплейте, я вот не понимаю зачем и список, и словарь когда можно сделать вложенный список типо такого:
table = [
    ['header1', 'header2', 'header3', 'header4'],
    ['value1.1', 'value2.1', 'value3.1', 'value4.1'],
    ['value1.2', 'value2.2', 'value3.2', 'value4.2']
]


C моделью даже подготавливать почти ничего не нужно:
table = [('header1', 'header2', 'header3', 'header4')]
table += Model.objects.all().values_list('value1', 'value2', 'value3', 'value4')
context['table'] = table


А потом в темплейте:
<table>
{% for v1, v2, v3, v4 in table %}
    {% if forloop.first %}
        <tr>
            <th>{{ v1 }}</th>
            <th>{{ v2 }}</th>
            <th>{{ v3 }}</th>
            <th>{{ v4 }}</th>
        </tr>
    {% else %}
        <tr>
            <td>{{ v1 }}</td>
            <td>{{ v2 }}</td>
            <td>{{ v3 }}</td>
            <td>{{ v4 }}</td>
        </tr>
    {% endif %}
{% endfor %}
</table>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы