1

我创建了一个表单,它使用 mako 模板将信息返回到表中的列表。我已将其设置为在模板和视图中单击列表名称时按字母顺序从 AZ 对列表进行排序。

问题是,如果再次单击它,我希望能够从 Za 订购它。这是我的看法:

    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>

关于如何让它发挥作用的任何想法

4

3 回答 3

0

我认为您必须为排序超链接的查询字符串创建一个附加变量,称为“sort_direction”。单击排序 href 后,您的视图可以将该变量设置为“desc”并将其传递给模板。然后,当您的视图再次收到它并在 GET 变量中看到“desc”时,您可以从 Django 的 ORM 中颠倒顺序:

ppl = People.objects.order_by('-var')

于 2013-08-23T14:51:18.210 回答
0

表格排序器怎么

<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(); 
} ); 
于 2013-08-23T20:27:29.573 回答
0

我会说使用django-tables2来显示任何表格。它具有内置功能,可在用户单击列标题时按任一方向按任何列排序。它的功能非常全面,并且比尝试重新发明轮子更容易使用。

于 2013-08-23T14:19:22.537 回答