我阅读了一些关于此的其他帖子以及一些涉及 javascript 和使用其他库的建议。我用手快速做了一些事情,但我对 Django 和 Python 不熟悉,所以我很好奇这是否不是一个好方法。
HTML
<table>
<tr>
<td><a href="?sort=to">To</a></td>
<td><a href="?sort=date">Date</a></td>
<td><a href="?sort=type">Type</a></td>
</tr>
{% for record in records %}
<tr><td>{{record.to}}</td><td>{{record.date}}</td><td>{{record.type}}</td></tr>
{% endfor %}
</table>
查看
headers = {'to':'asc',
'date':'asc',
'type':'asc',}
def table_view(request):
sort = request.GET.get('sort')
if sort is not None:
if headers[sort] == "des":
records = Record.objects.all().order_by(sort).reverse()
headers[sort] = "asc"
else:
records = Record.objects.all().order_by(sort)
headers[sort] = "des"
else:
records = Record.objects.all()
return render_to_response("table.html",{'user':request.user,'profile':request.user.get_profile(),'records':records})
最佳答案
我觉得不错。我建议在 View 代码中进行一次小的重构:
headers = {'to':'asc',
'date':'asc',
'type':'asc',}
def table_view(request):
sort = request.GET.get('sort')
records = Record.objects.all()
if sort is not None:
records = records.order_by(sort)
if headers[sort] == "des":
records = records.reverse()
headers[sort] = "asc"
else:
headers[sort] = "des"
return render_to_response(...)
关于python - Django 中的可排序表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3648512/