繁体   English   中英

如何制作通用模板以将传递给它的任何查询集呈现为 html 表?

[英]How to make generic template to render any queryset passed to it as html table?

我需要制作一个 django 模板,它将任何查询集呈现为表格。 这意味着我不知道会有多少列,也不知道键名是什么。 因此,模板将接收一个带有名为“数据”的查询集的上下文,例如,模板将通过键迭代以创建列标题,然后通过每一行迭代,在正确的列中写出行值。 在将查询集放置在上下文中时,我可以将任何函数应用于查询集,例如 values()、序列化等,但我无法控制列数及其名称,因为这是由可以以多种方式构造的查询。 我可以将密钥作为列表获取并遍历它们以获取标题。 我的问题是无法指定特定键名时的数据行。 有没有办法使用 itterate 和 next()。 我欢迎所有建议。 谢谢。

答案如下:数据 = 查询集,数据键 = 键列表

<table>
    <thead>
        <tr>
        {% for data_key in data_keys %}
            <th>{{ data_key }}</th>
        {% endfor %}
        </tr>
    </thead>
    <tbody>
        {% for row in data %}
         <tr>
            {% for row_item in row.values %}
                <td>{{ row_item }}</td>
            {% endfor %}
        </tr>
        {% endfor %}
    </tbody>
</table>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM