python - Django - 复杂的嵌套列表和元组解包

标签 python django templates tuples iterable-unpacking

这很简单,但它从根本上描述了我想要做的事情。

在我的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/

相关文章:

C++:从结构中的静态函数中提取参数类型

python - 如何在自定义 Keras 模型函数中共享层权重

python - 在tensorflow中寻找gen_nn_ops的源代码

python - Django 表单字段未显示

c++ - 何时使用模板而不是派生类

c++ - 指针和整数模板的内存泄漏。我究竟做错了什么?

python - 为什么这种递归回溯函数比非递归函数慢,用于计算 python 中找零硬币的最小数量?

python - 想要查找特定字符在特定句子中出现的次数

django - 网络源错误,安全数据 : UsernameToken authentication failed

django - CSRF仅在DRF中进行身份验证时才检查?