循环以将Django视图上下文呈现为模板中的表

时间:2018-03-25 15:09:23

标签: python django

我想将以下字典作为上下文传递给Django模板:

context = {'prices': prices, 'listings_links': listings_links, 'listings_names': listings_names, 'photo_links': photo_links}

字典的值是列表。

在模板中,我想将这些列表显示为HTML表格中的列。但是我不确定如何进一步开发以下骨架表代码:

<table>
    <tr>
      <th>Price</th>
      <th>Link</th>
      <th>Listing name</th>
      <th>Photo link</th>
    </tr>
 {% for loop start here? %}
    <tr>
      <td> {{prices[0] }} </td>
      <td> {{ listings_links[0] }} </td>
      <td> {{ listings_names[0] }} </td>
      <td> {{ photo_links[0] }} </td>
    </tr>
    #next rows go here... 
 {% endfor %}
</table>

1 个答案:

答案 0 :(得分:2)

在视图中,将列表压缩为单个可迭代内容。

items = zip(prices, listings_links, listings_names, photo_links)

context = {'items': item}

然后你可以在模板中解包items

{% for price, listing_link, listing_name, photo_link in items %}
  <tr>
    <td>{{ prices }}</td>
    <td>{{ listing_link }}</td>
    <td>{{ listing_name }}</td>
    <td>{{ photo_link }}</td>
  </tr>
{% endfor %}