Python 如何在Django列表中按排序

Python 如何在Django列表中按排序,python,django,generics,listview,sorting,Python,Django,Generics,Listview,Sorting,这是一份工作及其价格的清单。 我需要分拣方面的帮助。我想这样,当您单击“按预算排序”时,列表按预算递减排序,再次单击时,更改为按预算递增排序。我不知道这是否需要一个新的页面site/findjob/sortbybudget,但我更喜欢在site/findjob中这样做。我将感谢任何帮助或参考,我可以读到这样做 这是url.py from django.conf.urls.defaults import patterns, include, url from project.preview.mo

这是一份工作及其价格的清单。 我需要分拣方面的帮助。我想这样,当您单击“按预算排序”时,列表按预算递减排序,再次单击时,更改为按预算递增排序。我不知道这是否需要一个新的页面site/findjob/sortbybudget,但我更喜欢在site/findjob中这样做。我将感谢任何帮助或参考,我可以读到这样做

这是url.py

from django.conf.urls.defaults import patterns, include, url

from project.preview.models import Task

info_task = {
    'queryset': Task.objects.all(),
    'template_name': 'template.html',
}

urlpatterns = patterns('',
    (r'^findtask/$', 'django.views.generic.list_detail.object_list', dict(info_task)),
)
这是:template.html

<div class="sortList">
**Sort by:**
<ul>
    <li class="sort"><a href=""/>Budget</a></li>
    <li class="sort"><a href=""/>Newly Added</li>
</ul>
</div>

<div class="taskListCon">
        {% for object in object_list %}
        <div class="taskCon">
          <div class="Title">
          {{ object.title_description }}
          </div>
          <div class="clientID">                    
          {{object.userid}}
          </div>
          <div class="Price">
          Budget:{{ object.max_budget }}
        </div>
<div>
{% endfor %}

**排序方式:**
  • 新增
{对象列表%中的对象的百分比} {{object.title_description}} {{object.userid} 预算:{{object.max_Budget}} {%endfor%}
我建议的解决方案不是重新发明轮子,而是享受一个可以正确使用的可重用应用程序

简化了将数据集转换为HTML表的任务。它有 本机支持分页和排序。它适用于HTML表 django.forms对HTML表单的作用。e、 g

其特点包括:

  • 任何iterable都可以是数据源,但还包括对Django QuerySet的特殊支持
  • 内置UI不依赖JavaScript
  • 支持基于Django模型自动生成表
  • 通过子类化支持自定义列功能
  • 分页
  • 基于列的表排序。
  • 模板标记,以支持对HTML的简单呈现
  • Django 1.3中使用的通用视图mixin

我个人会使用jQuery tablesorter之类的工具来解决这个问题。这将为每次排序节省到服务器的往返行程


文档:

另一个选项是使用django过滤器。只需查看示例应用程序:


如果您选择这条路线,在我看来,tastypie是一个更好的选择。