Существует представление Django, которое загружает Member
объекты из базы данных с определенным фильтром.
Теперь мне нужно изменить эту логику на сначала представить конкретный Member
, а остальные должны следовать в их естественном порядке .
Самый простой способ - сразу выполнить запрос, получить список, удалить и вставить элемент в начале. Однако мне очень любопытно , если есть еще способ использовать ленивый характер QuerySet
.
В C # я бы написал:
IEnumerable<Member> members = db.Members; // db.Members is lazy
members = Enumerable.Union( // construct a lazy sequence that traverses its arguments
new [] { specificMember },
members.Where(m => m != specificMember)
);
Поскольку цикл проходит через members
, он сначала получает specificMember
, а затем использует независимо от оригинальной ленивой логики загрузки db.Members
, используемой .
Есть ли способ сделать то же самое в Django и Python?