首页 > 解决方案 > 如何从 Django 视图中的字典的“for”循环中检索索引号

问题描述

我正在尝试获取的索引号,{% for p in mydict_1 %}以便我可以在另一个 dict 上使用该索引来获取值。我想p用作索引号。如何在 Django 视图中执行此操作?两个列表中的数据对应于系列中的索引。

mylist_1 = [{'itemCode': 'AZ001', 'price': 15.52}, {'itemCode': 'AB01', 'price': 31.2}, {'itemCode': 'AP01', 'price': 1.2}] #list of dict
mylist_2 = [{'prop': 'val000'}, {'prop': 'val008'}, {'prop': 'val009'}] #list of dict

{% for p in mylist_1 %}
    <tr>
       <td><a>{{p.itemCode}}</a></td>
       <td><a>{{p.price}}</a></td>
       #Want to use p's index number to get value of that index from mylist_2
       <td><a>{{mylist_2.[p].prop}}</a></td> #How to do this correctly? Expecting val000 for index 0
    </tr>
{% endfor %}

标签: pythonpython-3.xdjangodjango-views

解决方案


你没有。Django 的模板语言故意限制这一点,以防止人们在模板中编写业务逻辑。zip(…)您可以将带有[python-doc]的字典传递给模板:

def my_view(request):
    # …
    context = {
        # …,
        'mydicts': zip(mydict_1, mydict_2)
    }
    return render(request, 'some-template.html', context)

然后在模板中迭代:

{% for p, q in mydicts %}
    {{ p.itemCode }}
    {{ p.price }}
    {{ q.prop }}
{% endfor %}

推荐阅读