python - 如何从 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 %}
解决方案
你没有。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 %}
推荐阅读
- javascript - TypeScript 定义文件必须位于包的根目录吗?
- android - 协调器布局。当我尝试滚动 AppBarLayout 区域时,滚动停止
- joomla - Joomla 安装 drom 服务器到本地
- jquery - 如何在jQuery中淡出和淡入段落?
- ethereum - ERC20 代币在没有所有者的情况下成功部署
- laravel - laravel 如何在多对多关系中分配给用户?
- macos - 在(null)框架中找不到函数“SLSIsSuppressedByScreenTime”
- php - 如何在while语句中使用函数来获取关联数组值?
- javascript - 无法将数组条目作为数据参数传递 - 内部服务器错误
- mulesoft - 在 API 中找不到应用程序