我创建了一个表单,使用mako模板将信息返回到表中的列表。我已将其设置为在模板和视图中单击列表名称时从A-Z按字母顺序排列列表。
问题是,如果再次点击它,我希望能够从Z-a订购它。 以下是我的观点:
def people(request):
sort = request.GET.get('sort','')
if sort != '':
var = sort
ppl = People.objects.order_by(var)
else:
ppl = People.objects.all()
我的template.mako:
<table class="table overview-table table-hover" id="people">
<thead>
<tr>
<th><a href="${self.util.reverse('view_people')}?sort=first_name">First Name</th>
<th><a href="${self.util.reverse('view_people')}?sort=surname">Last name</th>
</tr>
</thead>
有关如何使其发挥作用的任何想法
答案 0 :(得分:0)
我会说使用django-tables2来显示任何表格。它具有内置功能,可以在用户单击列标题时按任意方向排序。它的功能非常全面,并且比试图重新发明轮子更容易使用。
答案 1 :(得分:0)
我认为您必须为排序超链接的查询字符串创建一个额外的变量,称为“sort_direction”。单击sort href后,您的视图可以将该变量设置为“desc”并将其传递给模板。然后,当您的视图再次收到它并在GET变量中看到“desc”时,您可以从Django的ORM中撤消该命令:
ppl = People.objects.order_by('-var')
答案 2 :(得分:0)
Tablesorter怎么样?
<script type="text/javascript" src="/path/to/jquery-latest.js"></script>
<script type="text/javascript" src="/path/to/jquery.tablesorter.js"></script>
$(document).ready(function()
{
$("#myTable").tablesorter();
} );