{% for dispN0, tableDataSet0 in tabulatedTable.items %}
{% for dispN in orderChanels %}
{% for antenaName, antenaLevel in tableDataSet0.{{dispN}}.items %}
<td>{{antenaName}}</td>
{% endfor %}
{% endfor %}
{% endfor %}
这里 {{dispN}} 是整数数字,例如36、42等。如果我给 tableDataSet0.36.items ,它可以正常工作。但我需要在第36个位置乘以倍数。
最佳答案
您需要编写自己的template filter来查找字典或对象的值:
在您的应用程序的utils.py
文件夹中创建一个类似于templatetags
的文件,如下所示:
app_dir/
├── __init__.py
├── models.py
...
├── templatetags/
│ ├── __init__.py # required for python 2.7
│ └── utils.py
...
└── views.py
并填写以下内容:
from django import template
register = template.Library()
@register.filter
def lookup(value, key):
return value.get(key, [])
现在,您可以像下面这样在模板中使用此过滤器:
{% load utils %}
{% for dispN0, tableDataSet0 in tabulatedTable.items %}
{% for dispN in orderChanels %}
{% with tableData = tableDataSet0|lookup:dispN %}
{% for antenaName, antenaLevel in tableData.items %}
<td>{{antenaName}}</td>
{% endfor %}
{% endwith %}
{% endfor %}
{% endfor %}
进一步了解
{% with %}
templatetag 关于python - Django模板中的字典查找,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44391451/