这是一份工作及其价格清单。 我需要排序方面的帮助。我希望这样做,以便当您单击按预算排序时,列表按预算减少排序,再次单击时更改为按预算增加排序。我不知道这是否需要一个新的页面站点/ findjob / sortbybudget,但我更喜欢在site / findjob中这样做。我将不胜感激任何我可以阅读的帮助或参考资料。
这是urls.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 %}
答案 0 :(得分:2)
我建议的解决方案不是重新发明轮子,而是享受一个可以重复使用的应用程序。
django-tables2 简化了将数据集转换为HTML表的任务。它有 原生支持分页和排序。它适用于HTML表格 django.forms为HTML表单做了什么。 e.g。
其功能包括:
- 任何可迭代都可以是数据源,但包含对Django查询集的特殊支持。
- 内置用户界面不依赖JavaScript。
- 支持基于Django模型的自动表生成。
- 通过子类化支持自定义列功能。
- 分页。
- 基于列的表格排序。
- 模板标记,用于启用对HTML的简单渲染。
- 用于Django 1.3的通用视图mixin。
答案 1 :(得分:2)
就个人而言,我会使用像jQuery tablesorter这样的东西来解决这个问题。这将为您节省每次往返服务器的往返次数。
答案 2 :(得分:1)
另一种选择是使用django-filter。只需查看示例应用程序: