我列出了查询集结果,并希望添加一个用于选择订单结果的选项。
我想将实际数据从数据库传递到其他页面进行排序。 我能够通过获取所有对象ID并使用django会话根据订单条件重新创建新的查询集来实现此类功能。
我在想是否有其他方法可以实现这样的目标?
10倍
答案 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。