【发布时间】:2013-01-12 12:06:14
【问题描述】:
我有以下:
models.py
class Person(models.Model):
full_name = models.CharField(...)
address = models.CharField(...)
views.py
def all_persons(request):
persons = Person.objects.all()
return render(
request,
'my_template.html',
{
'persons':persons
}
)
my_template.html
<table class="table table-striped">
<thead>
<tr>
<th>Person's Fullname</th>
</tr>
</thead>
<tbody>
{% for person in persons %}
<td>{{ person.full_name }}</td>
<td>{{ person.address }}</td>
好的,所以代码会在模板中显示一个无序列表的人员,当然我可以按人员的姓名或地址进行排序,我想让用户可以按任何字段进行排序,我想要通过模板中表格的每一列上的按钮来完成此操作。例如 full_name 顶部的按钮和 address 顶部的按钮,如果其中任何一个被按下,则列表应根据按下的按钮排序。
非常感谢您的阅读,希望您能帮到我。
编辑:我使用 Twitter Boostrap 2,所以 tablesorter 和 DataTables JS 无法工作。
【问题讨论】:
-
如果所有数据都已经发送到客户端,为什么不直接在Javascript中做呢?
-
你在使用 django-tables2 吗?如果是这样,排序是内置的:django-tables2.readthedocs.org/en/latest.
-
你必须在屏幕上创建一个按钮,当用户点击它时,你运行一个排序数据的方法,或者只是发送一个 SQL 到数据库并检索排序的数据
-
@user1775603 不,我没有使用 django-tables2,但似乎是一个不错的模块,我会考虑的。
-
也许您可以将
persons转换为字典并使用此标签docs.djangoproject.com/en/1.4/ref/templates/builtins/#dictsort
标签: python django twitter-bootstrap django-templates