django 模板可变字段数 table 来自查询集
django template variable number of fields build of table from queryset
我正在尝试根据可变数量的字段在模板中构建 table。
我使用的代码是:
<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 是包含所有字段的列表,CIs 是包含需要进入 table 的数据的查询集。
问题是我通常知道字段的名称,因此在以通常方式创建单元格时我可以单独调用每个字段:
{{CI.field1}}
{{CI.field2}}
....
但现在我无法对字段名称进行硬编码,因为它们是可变的并且来自列表。
有办法吗?
谢谢,
艾萨克
只需使用 items
再次遍历 CIs
{% for key,value in CIs.items %}
<td>{{ key }} {{value}}</td>
{%endof%}
如果您只想打印 fields
中的项目:
{% for field_name, field_value in CIs.items %}
{% if field_name in fields %}
<th>{{ field_name }}</th>
<td>{{ field_value }}</td>
{% endif %}
{%endof%}
已通过在视图中创建查询集时使用 .values 解决。
为了引用每个字段的外键,我必须用 field_name_foreign_field 的列表构建值列表。
由于所有外键字段的名称都遵循标准规则,因此在视图中使用 for 循环非常容易。
我正在尝试根据可变数量的字段在模板中构建 table。 我使用的代码是:
<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 是包含所有字段的列表,CIs 是包含需要进入 table 的数据的查询集。 问题是我通常知道字段的名称,因此在以通常方式创建单元格时我可以单独调用每个字段:
{{CI.field1}}
{{CI.field2}}
....
但现在我无法对字段名称进行硬编码,因为它们是可变的并且来自列表。
有办法吗?
谢谢, 艾萨克
只需使用 items
CIs
{% for key,value in CIs.items %}
<td>{{ key }} {{value}}</td>
{%endof%}
如果您只想打印 fields
中的项目:
{% for field_name, field_value in CIs.items %}
{% if field_name in fields %}
<th>{{ field_name }}</th>
<td>{{ field_value }}</td>
{% endif %}
{%endof%}
已通过在视图中创建查询集时使用 .values 解决。 为了引用每个字段的外键,我必须用 field_name_foreign_field 的列表构建值列表。 由于所有外键字段的名称都遵循标准规则,因此在视图中使用 for 循环非常容易。