1

我有以下内容:

模型.py

class Person(models.Model):
    full_name = models.CharField(...)
    address = models.CharField(...)

视图.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>

好的,所以代码将在模板中显示一个无序列表的人员,当然我可以按人员的姓名或地址进行排序,我想让用户可以按任何字段进行排序,我想完成这在模板中表格的每一列上都有一个按钮。例如,全名顶部的按钮和地址顶部的按钮,如果其中任何一个被按下,则列表应根据按下的按钮进行排序。

非常感谢您的阅读,希望您能帮到我。

编辑:我使用 Twitter Boostrap 2,所以 tablesorter 和 DataTables JS 不会工作。

4

1 回答 1

1

查看这个用于 HTML 表的 JS 插件:Datatables。带有排序,过滤,分页,很多插件。上手容易,但您可能会认为它有点臃肿。

另一种方法是让视图接受一个额外的参数(例如,一个表示字段的整数),按此字段对查询集进行排序并呈现模板。

于 2013-01-29T01:47:00.503 回答