首页 > 解决方案 > 在 Django 模板中显示列名而不提前知道它们

问题描述

我有一个要传递给 Django 的查询集。有100列左右。我想在不知道所有列名的情况下将此单个对象呈现为 HTML 列表。我知道我可以使用ListView,但我想要更多的控制在 TemplateView 中做这样的事情(带有额外的图表):

<ul>
{% for obj in queryset %}
    <li>
    {% for column in obj %}
        [Name of Column]: {{ column }}
    {% endfor %}
    </li>
{% endfor %}
</ul>

所以我想在事先不知道列名的情况下同时呈现列名和列数据。普通我会这样做:

<ul>
{% for obj in queryset %}
    <li>
        Column 1: {{ obj.column1 }}            
        Column 2: {{ obj.column2 }}            
        ...
        Column 100: {{ obj.column100 }}            
    </li>
{% endfor %}
</ul>

但这有点乏味,需要手动写出每个列名。

标签: djangodjango-templates

解决方案


你能试试这个

<ul>
{% for obj in queryset %}
    <li>
    {% for column in obj.column_set.all %}
        [Name of Column]: {{ column }}
    {% endfor %}
    </li>
{% endfor %}
</ul>

推荐阅读