Ker*_*vvv 6 python django django-templates django-views django-template-filters
希望这是一个非常简单的问题.我的endgoal是能够在表中查看我的数据库条目,我可以通过列标题对其进行排序.我已阅读文档上的周期标记,但不知道他们的意思'row1'
和'row2'
:
{% for o in some_list %}
<tr class="{% cycle 'row1' 'row2' %}">
...
</tr>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
其次,我如何正确地将其实现到我的模板中?我正在使用一个非常简单的JS库,它将允许排序:
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 %}
Run Code Online (Sandbox Code Playgroud)
我的models.py,以防你需要它:
def view(request):
Variable = database.objects.all()
context = {
'Variable': Variable,
}
return render(request, 'app/page.html', context)
Run Code Online (Sandbox Code Playgroud)
编辑:似乎我一直有正确的代码,只是一些不均匀应用的CSS,使我的表看起来不像一个表.不需要循环标记,只需要for循环.添加另一个表行后,它看起来也更好:
{% for stuff in Variable %}
<tr>
<td>{{ stuff.Name|capfirst }}</td>
<td>{{ stuff.Number|capfirst }}</td>
</tr>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
对于循环标记,两个参数将交替添加到模板中,例如,模板中的代码{% for o in some_list %}<tr class="{% cycle 'row1' 'row2' %}"></tr>{% endfor %}
将生成:
<tr class="row1">
...
</tr>
<tr class="row2">
...
</tr>
<tr class="row1">
...
</tr>
<tr class="row2">
...
</tr>
<!-- ... and so on while there are elements in some_list -->
Run Code Online (Sandbox Code Playgroud)
等等.通常你会附加一些css,例如:
<style>
.row1 {
background: #345678;
}
.row2 {
background: #123456;
}
</style>
Run Code Online (Sandbox Code Playgroud)
例如,这将为备用行提供不同的背景颜色.
归档时间: |
|
查看次数: |
6146 次 |
最近记录: |