这很简单,但它从根本上描述了我想要做的事情。
在我的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 %}
实际上 - 我已经尝试了大约十几种不同的解决方案,但我却束手无策。任何有关如何在模板中成功重新打包和解包以实现预期目标的帮助将不胜感激!
附注我并没有真正处理商店名称、产品和员工,但这似乎是将其放在帖子中的最简单方法。如果您质疑是否需要在一个表行中包含此类数据,我完全理解!
最佳答案
您可以通过 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 %}
关于python - Django - 复杂的嵌套列表和元组解包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18796117/