我正在尝试基于可变数量的字段在模板中构建表。 我正在使用的代码是:
<table id="custom_report_table" class="display" width="100%">
<thead>
{% for field in fields %}
<th>{{ field }}</th>
{% endfor %}
</thead>
<tdody>
{% for CI in CIs %}
<tr>
<td>{{ CI }}</td>
</tr>
{% endfor %}
</tdody>
</table>
fields是包含所有字段的列表,CI是一个查询集,其中包含需要进入表的数据。 问题是我通常知道字段的名称,所以我可以在通常的方式创建单元格时单独调用每个字段:
{{CI.field1}}
{{CI.field2}}
....
但是现在我不能硬编码字段的名称,因为它们是可变的并且来自列表。
有办法做到这一点吗?
谢谢, 艾萨克
答案 0 :(得分:0)
使用CIs
items
进行迭代
{% for key,value in CIs.items %}
<td>{{ key }} {{value}}</td>
{%endof%}
答案 1 :(得分:0)
如果您只想打印fields
中的项目:
{% for field_name, field_value in CIs.items %}
{% if field_name in fields %}
<th>{{ field_name }}</th>
<td>{{ field_value }}</td>
{% endif %}
{%endof%}
答案 2 :(得分:0)
通过在视图中创建查询集中使用.values来解决。 为了引用每个字段的外键,我必须使用field_name_foreign_field列表构建值列表。 由于所有外键字段的名称都遵循标准规则,因此在视图中使用for循环非常容易。