Django 从特定顺序的 id 数组中获取 QuerySet [英] Django get a QuerySet from array of id's in specific order
本文介绍了Django 从特定顺序的 id 数组中获取 QuerySet的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这里有一个给你的:
我有一个 id 列表,我想用它来返回一个 QuerySet(或数组,如果需要的话),但我想保持这个顺序.
I have a list of id's which I want to use to return a QuerySet(or array if need be), but I want to maintain that order.
谢谢
推荐答案
我认为您无法在数据库级别强制执行该特定顺序,因此您需要在 Python 中执行此操作.
I don't think you can enforce that particular order on the database level, so you need to do it in python instead.
id_list = [1, 5, 7]
objects = Foo.objects.filter(id__in=id_list)
objects = dict([(obj.id, obj) for obj in objects])
sorted_objects = [objects[id] for id in id_list]
这会建立一个以 id 为键的对象字典,因此在建立排序列表时可以轻松检索它们.
This builds up a dictionary of the objects with their id as key, so they can be retrieved easily when building up the sorted list.
这篇关于Django 从特定顺序的 id 数组中获取 QuerySet的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文