django queryset排序

时间:2012-11-30 19:28:38

标签: django django-templates

我列出了查询集结果,并希望添加一个用于选择订单结果的选项。

我想将实际数据从数据库传递到其他页面进行排序。 我能够通过获取所有对象ID并使用django会话根据订单条件重新创建新的查询集来实现此类功能。

我在想是否有其他方法可以实现这样的目标?

10倍

2 个答案:

答案 0 :(得分:1)

假设您当前正在将数据显示为表格,您可以放弃一些javascript客户端表格分类器,例如tablesorter。有很多javascript表sorte。

答案 1 :(得分:0)

我现在离开了我的开发机器,但我认为您可以将ID列表传递给新的Queryset pk__in=list_of_object_ids,然后使用本机order_by函数。

例如:

objs = Object.objects.filter(pk__in=list_of_object_ids).order_by('value_to_order_by')

无论如何,这是我首先尝试的,但我确信有更好的优化。

例如,您可以使用key:value对传递具有您想要排序的值的字典,而不是对象ID列表。

例如:

[{'obj_id':1,'obj_value':'foo'},{'obj_id':2,'obj_value':'foo'}]

然后使用一些lambda函数对其进行排序,例如here