2

这是简化的,但它从根本上描述了我正在尝试做的事情。

在我的views.py 中,我正在构建一个列表列表。每个列表包含一个商店名称、一个(产品、价格)元组列表和一个(员工、年龄)元组列表。两个元组列表的长度都不确定(但在每一行中的长度相同)。包含名称和元组列​​表的外部列表的长度也是不确定的。

[[store_name,         [(product_1a, price_1a),(product_2a,price_2a),...],  [(employee_1a, age_1a), (employee_2a, age_2a),...]]
 [another_store_name, [(product_1b, price_1b),(product_2b,price_2b),...],  [(employee_1b, age_1b), (employee_2b, age_2a),...]]
 ...                                                                                                                          ]

上述包的每一行都需要解包到我的模板中的表格的一行中。我正在为我的模板尝试以下代码:

{% for name, products, employees in package %}
  <tr>
      <td>{{ name }}</td>
    {% for product, price in products %}
      <td>{{ product }}</td> <td>{{ price }}</td>
    {% endfor %}
    {% for employee, age in employees %}
      <td>{{ employee }}</td> <td>{{ age }}</td>
    {% endfor %}
  </tr>
{% endfor %}

实际上 - 我已经尝试了大约十几种不同的解决方案,而且我束手无策。任何有关如何在模板中成功重新打包和解包以实现预期目标的帮助将不胜感激!

PS 我并没有真正与 store_names、产品和员工一起工作,但这似乎是把它放在帖子中的最简单的方法。如果您质疑是否需要在一个表格行中包含此类数据,我完全理解!

4

1 回答 1

3

您可以通过 arr.0、arr.1 等访问模板中的数组序列元素。请参阅此处的文档:https ://docs.djangoproject.com/en/1.4/topics/templates/#variables

所以尝试这样的事情:

{% for item in package %}
  <tr>
      <td>{{ item.0 }}</td>
    {% for product in item.1 %}
      <td>{{ product.0 }}</td> <td>{{ product.1 }}</td>
    {% endfor %}
    {% for employee in item.2 %}
      <td>{{ employee.0 }}</td> <td>{{ employee.1 }}</td>
    {% endfor %}
  </tr>
{% endfor %}
于 2013-09-13T22:52:20.890 回答