Django: захватить набор объектов из списка идентификаторов (и отсортировать по метке времени)
У меня есть список идентификаторов для объектов, которые мне нужно захватить, тогда мне нужно отсортировать их по метке времени. Вот как я собирался это сделать:
For i in object_ids:
instance = Model.objects.get(id = i)
# Append instance to list of instances
#sort the instances list
Но меня беспокоят две вещи:
- Нет ли способа захвата коллекции записей списком их идентификаторов - без необходимости цитировать?
- Можно ли добавить произвольные объекты в QuerySet только на основе их идентификаторов?
Спасибо,
Ответы
Ответ 1
Это можно сделать с помощью такого кода:
objects = Model.objects.filter(id__in=object_ids).order_by('-timestamp')
order_by
может быть положительным или отрицательным timestamp
, в зависимости от того, как вы хотите его сортировать.
Ответ 2
Попробуйте следующее:
result = Model.objects.filter(id__in=object_ids)
Это возвращает все Model
объекты, которые имеют id
в указанном списке object_ids
. Таким образом, вам также не нужно добавлять дополнительные модели в полученный QuerySet.