2015-06-23 5 views
1

У меня возникла проблема: у меня есть 4 списка с данными. И мне нужно заполнить таблицу этими данными. Это пример таблицы: tableКак заполнить таблицу? (Python, Django)

Итак, как вы уже поняли, в первом столбце должны быть данные из первого списка, на втором - второй список ... Я попытался сделать это:

{% for i in first_list %} 
    <tr> 
     <td>{{i}}</td> 
    </tr> 
{% endfor %} 

Но он заполняет только первую колонку и не знает, что я должен делать дальше ... Помогите мне, пожалуйста!

+0

Является ли это, как и все списки имеют одинаковую длину – nu11p01n73R

+0

Да, все в списке имеют одинаковую длину –

ответ

6

Есть две вещи, которые необходимо изменить.

  • В файле views.py, а не возвращать 4 различных списков, возвращают один архивный вариант списков как

    zipped_list = zip(first_list, second_list, third_list, fourth_list) 
    

    Теперь это должно быть передано в файл вида, который визуализируется.

    context_dict = {'zipped_list': zipped_list, ......} 
    

    и визуализируется как

    return render(request, 'your_view_file', context_dict) 
    
  • Теперь в файле просмотра, вы можете изменить for шаблон как

    {% for i in zipped_list %} 
        <tr> 
         <td>{{i.0}}</td> 
         <td>{{i.1}}</td> 
         <td>{{i.2}}</td> 
         <td>{{i.3}}</td>   
        </tr> 
    {% endfor %} 
    

    Примечание Вы можете даже перебирать в <td> «S так что он позволяет обрабатывать любое количество столбцов, а не только 4 столбца.

    Пример:

    {% for row in zipped_list %} 
        <tr> 
         {% for column in row %} 
          <td>{{column}}</td>   
        </tr> 
    {% endfor %} 
    
+0

Вы можете сделать '' S во внутреннем цикле через 'i'. –

+0

@ DanielRoseman Wow !! Это делает его более аккуратным. Обновлено в ответ. Спасибо за совет!! :) – nu11p01n73R

Смежные вопросы