Gan*_*a U 5 python django django-templates python-2.7
{% for dispN0, tableDataSet0 in tabulatedTable.items %}
{% for dispN in orderChanels %}
{% for antenaName, antenaLevel in tableDataSet0.{{dispN}}.items %}
<td>{{antenaName}}</td>
{% endfor %}
{% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
这里{{dispN}}是整数,数字将如36、42等出现。如果我给tableDataSet0.36.items,它可以正常工作。但我需要在36处乘以倍数。
您需要编写自己的模板过滤器来查找字典或对象的值:
\n\nutils.py在应用程序内的文件夹中创建一个文件,templatetags如下所示:
app_dir/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 models.py\n ...\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 templatetags/\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py # required for python 2.7\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 utils.py\n ...\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 views.py\nRun Code Online (Sandbox Code Playgroud)\n\n并填写以下内容:
\n\nfrom django import template\n\nregister = template.Library()\n\n@register.filter\ndef lookup(value, key):\n return value.get(key, [])\nRun Code Online (Sandbox Code Playgroud)\n\n现在您可以在模板中使用此过滤器,如下所示:
\n\n{% load utils %}\n\n{% for dispN0, tableDataSet0 in tabulatedTable.items %}\n {% for dispN in orderChanels %}\n\n {% with tableData = tableDataSet0|lookup:dispN %}\n {% for antenaName, antenaLevel in tableData.items %}\n <td>{{antenaName}}</td> \n {% endfor %}\n {% endwith %}\n\n {% endfor %}\n{% endfor %}\nRun Code Online (Sandbox Code Playgroud)\n\n阅读更多关于
\n\n\n| 归档时间: |
|
| 查看次数: |
789 次 |
| 最近记录: |