【问题标题】:Django - Create table from list of listDjango - 从列表列表创建表
【发布时间】:2013-04-18 03:17:48
【问题描述】:

我对html中的表格不太擅长,所以这个问题可能很容易回答。

我将列表 {{ attributes }} 传递给模板,我想创建一个包含 2 行和多列的表。

模板:

<div id="table">
<table border=0>
{% for attr in attributes %}
    <td>
       <th>{{ attr.0 }}</th>
        {{ attr.1 }}
    </td>
{% endfor %}
</table>
</div>

我希望{{ attr.0 }} 成为标题并显示在单行上,{{ attr.1 }} 显示在第二行上。

【问题讨论】:

标签: html django django-templates


【解决方案1】:

怎么样

<div id="table">
<table border=0>
<thead>
    <tr>
    {% for attr_head in attributes.keys %}
       <th>{{ attr_head }}</th>
    {% endfor %}
    </tr>
</thead>
<tbody>
    <tr>
    {% for attr in attributes.values %}
        <td>{{ attr }}</td>
    {% endfor %}
    </tr>
</tbody>
</table>
</div>

只需遍历字典的键并将它们呈现为表头中的th 元素,然后遍历值,将它们呈现在tbody 中。 thtd 是表中的列,tr 是行。

另外,你应该阅读html tables,它们并不难

【讨论】:

  • 我在考虑像你的提议那样使用两个循环,但我想知道是否可以在一个循环中做同样的事情?
  • 在这种情况下并非如此。如果要渲染多行 2 列,那就很简单了
  • 好的,谢谢。我会接受你的,因为你是第一个回答的。
【解决方案2】:

您可以只循环两次,一次用于标题,一次用于内容?

<div id="table">
    <table border=0>
        <tr>
            {% for attr in attributes %}  
            <th>{{ attr.0 }}</th>
            {% endfor %}
        </tr>
        <tr>
            {% for attr in attributes %}
                <td>{{ attr.1 }}</td>
            {% endfor %}
        </tr>
    </table>
</div>

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签