【发布时间】:2016-07-08 09:53:40
【问题描述】:
希望这是一个非常简单的问题。我的最终目标是能够在表格中查看我的数据库条目,我可以通过列标题对其进行排序。我已经阅读了循环标签上的documentation,但不知道它们是指'row1' 和'row2':
{% for o in some_list %}
<tr class="{% cycle 'row1' 'row2' %}">
...
</tr>
{% endfor %}
其次,我如何将它正确地实现到我的模板中?我正在使用一个非常简单的JS library,它将允许排序:
page.html
{% if Variable %}
<table class="sortable">
<tr>
<th>Title 1</th>
<th>Title 2</th>
<th>Title 3</th>
<th>Title 4</th>
<th>Title 5</th>
</tr>
{% for stuff in Variable %}
<tr class="{% cycle 'stuff' %}">
<td>
<a href="{% url 'detail_page' stuff.id %}">
{{ stuff.Name|capfirst }}</a>
</td>
</tr>
{% endfor %}
</table>
{% else %}
<p>No Results Found</p>
{% endif %}
我的 models.py 以备不时之需:
def view(request):
Variable = database.objects.all()
context = {
'Variable': Variable,
}
return render(request, 'app/page.html', context)
编辑: 似乎我一直都有正确的代码,只是一些应用不均的 CSS 使我的表格看起来不像表格。不需要循环标签,只需要 for 循环。添加另一个表格行后看起来也更好:
{% for stuff in Variable %}
<tr>
<td>{{ stuff.Name|capfirst }}</td>
<td>{{ stuff.Number|capfirst }}</td>
</tr>
{% endfor %}
【问题讨论】:
-
我认为您不想在这里使用
cycle标签。它所做的只是在 forloop 迭代时在多个值之间来回切换。文档中的“行”只是在两个类名之间交替,每次 forloop 运行时(即在第一次迭代时,添加row1作为类名,第二次使用row2,第三次使用row1,在第四个row2等) -
你完全正确,我不应该。我拿走了循环标签,创建了另一行,我可以看到我的桌子采取了“形式”。似乎我一直都有,只是一些应用不均匀的 CSS 让它看起来很奇怪。您能否也简单地向我解释一下什么是类名?我假设使用循环,我正在创建自己的变量(row1 和 row2)。总的来说,我对编程和自学非常陌生。
-
它们只是 CSS 类名(字符串)。因此,当列表中有项目时,文档中的代码将在
class="row1"和class="row2"之间来回切换。 -
谢谢!这对我来说更有意义了!当我设计表格时,我一定会记住这些信息。再次感谢:)
标签: python django django-templates django-views django-template-filters