Django - 创建表的最佳方式
Django - Best way to create tables
我正在按照特定模式显示数据库中的数据。
为此,我使用带有 {% for %} 循环的模板来创建 table 的行/列。
第一个问题:我不确定这是不是正确的方法,是否有更有效的方法。
第二个问题:如何排序。我想知道如何对 table 进行排序。由于构建 table 的 {% for %} 循环,我不知道如何通过单击 headers 来正确排序我的 table 列。我见过很多解决方案,但 none 可以与 table 中丢失的循环一起使用。
确实,对于像 django-table2 这样的东西,我不知道如何合并我的特定循环(而不是打印整个 table,我可以使用 django 对其进行排序-table2 但 w/o 能够调整显示的设计和信息。
下面是我如何在模板中构建内容的示例 - table 包含在 table 中:
<table>
<thead>
<tr>
<th>Status</th>
<th>Some</th>
<th>Something</th>
<th>Other</th>
</tr>
</thead>
<tbody>
{% block content %}
{% for x in xx %}
<tr>
<td> {{ x.status }} </td>
<td> {{ x.some}} </td>
<td> {{ x.something }} </td>
<td>
<table>
<thead>
<th> Br </th>
<th> Sc </th>
<th> Ic </th>
</thead>
<tbody>
<tr>
<td>{% if itemA|get_item:varX.name >= 1 %} Good {% else %} Bad {% endif %} </td>
<td>{% if itemB|get_item:varY.name >= 1 %} Good {% else %} Bad {% endif %} </td>
<td>{% if itemC|get_item:varY.name >= 1 %} Good {% else %} Bad {% endif %} </td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
{% endfor %}
{% endblock %}
非常感谢您的帮助!
First question: I'm not sure is this is the right way to do this and
if there is a more efficient way.
是的,这是一个很好的解决方案。
Second question: How to sort. I would like to know how I could sort
the table. Because of the {% for %} loop building the table, I don't
know how to properly sort my table columns by clicking on the headers.
I've seen many solutions but none would work with the loop in the
table missing things up.
您可以在后端排序(使用来自 Django 的排序数据渲染您的模板),也可以在前端排序 (javascript)。循环不应该与前端排序有任何关系。呈现模板后,您的 html 就是 html,没什么特别的。
我正在按照特定模式显示数据库中的数据。
为此,我使用带有 {% for %} 循环的模板来创建 table 的行/列。
第一个问题:我不确定这是不是正确的方法,是否有更有效的方法。
第二个问题:如何排序。我想知道如何对 table 进行排序。由于构建 table 的 {% for %} 循环,我不知道如何通过单击 headers 来正确排序我的 table 列。我见过很多解决方案,但 none 可以与 table 中丢失的循环一起使用。
确实,对于像 django-table2 这样的东西,我不知道如何合并我的特定循环(而不是打印整个 table,我可以使用 django 对其进行排序-table2 但 w/o 能够调整显示的设计和信息。
下面是我如何在模板中构建内容的示例 - table 包含在 table 中:
<table>
<thead>
<tr>
<th>Status</th>
<th>Some</th>
<th>Something</th>
<th>Other</th>
</tr>
</thead>
<tbody>
{% block content %}
{% for x in xx %}
<tr>
<td> {{ x.status }} </td>
<td> {{ x.some}} </td>
<td> {{ x.something }} </td>
<td>
<table>
<thead>
<th> Br </th>
<th> Sc </th>
<th> Ic </th>
</thead>
<tbody>
<tr>
<td>{% if itemA|get_item:varX.name >= 1 %} Good {% else %} Bad {% endif %} </td>
<td>{% if itemB|get_item:varY.name >= 1 %} Good {% else %} Bad {% endif %} </td>
<td>{% if itemC|get_item:varY.name >= 1 %} Good {% else %} Bad {% endif %} </td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
{% endfor %}
{% endblock %}
非常感谢您的帮助!
First question: I'm not sure is this is the right way to do this and if there is a more efficient way.
是的,这是一个很好的解决方案。
Second question: How to sort. I would like to know how I could sort the table. Because of the {% for %} loop building the table, I don't know how to properly sort my table columns by clicking on the headers. I've seen many solutions but none would work with the loop in the table missing things up.
您可以在后端排序(使用来自 Django 的排序数据渲染您的模板),也可以在前端排序 (javascript)。循环不应该与前端排序有任何关系。呈现模板后,您的 html 就是 html,没什么特别的。