在模板标签内使用变量

时间:2013-06-09 21:04:23

标签: arrays django pymongo

我有以下样本结构

'_id': 1
'company': 'XXX'
'numberOfProducts': 2
'products': [
        {'sku': 'cnx1cs', 'name': 'canon', 'qty': 3},
        {'sku': 'nkx1cs', 'name': 'nikon', 'qty': 2}
         ]

当我在html文件中使用这个{{list_of_assets.products.0.name}}符号时(在Django中),看起来更舒服,而不是使用dict.items()/dict.iteritems(),尤其是当您考虑更多嵌套数组时。

但我无法弄清楚如何控制for循环中的数组项目编号......

我的意思是,如果我们考虑上面的示例,我如何迭代循环两次并通过某种方式使用变量内部的变量生成以下符号

    {{list_of_assets.products.0.name}}
    ....
    {{list_of_assets.products.1.name}}

问候

2 个答案:

答案 0 :(得分:0)

你可以做到

{% for product in list_of_assets.products %}
  {{product.name}}
{% endfor %}

答案 1 :(得分:0)

Django模板不允许复杂的循环结构或编程。 (有关模板哲学的完整详情,请阅读:http://www.djangobook.com/en/2.0/chapter04.html部分:哲学和局限性。

也就是说,显示数组中所有项目的唯一方法是使用上面建议的解决方案karthikr:

{%for p in list_of_assets.products %}
    {{p.name}}
{% empty %}
    Nothing in the list!
{% endfor %}