Django объединение двух наборов запросов путем добавления элемента из одного набора запросов в другой каждый n-й элемент - PullRequest
0 голосов
/ 31 марта 2020

Предположим, в моей модели есть "фильмы" нескольких типов: например, боевик, драма, фантастика и т. Д. c ...

В моем шаблоне я хотел бы перечислить 50 самых последних фильмов ( отсортировано по дате). Что довольно просто, например:

Movies.order_by('-date')[0:50]

Однако у меня есть дополнительное требование: я хотел бы перечислить боевики (отсортированные по дате) каждые 3 фильма других типов:

Например :

(0) Drama 12/3
(1) Adventure 11/3
(2) Science 10/3
**(3) Action 11/3**
(4) Sci-Fi 9/3
(5) Sci-Fi 8/3
(6) Adventure 4/3
**(7) Action 8/3**
(8) Drama
.
.
.
(50) ...

Другими словами, объедините два набора запросов:

  1. фильмы, отсортированные по дате всех фильмов, кроме боевиков.
  2. фильмы, отсортированные по дате только боевики.

Новый набор запросов (или список?) должен содержать 3 элемента из первого набора запросов и 1 элемент из другого набора запросов.

1 Ответ

0 голосов
/ 01 апреля 2020

Было бы очень полезно, если бы кто-то мог предложить лучшее решение, но это то, что я сделал:

Я преобразовал два набора запросов в списки. А затем использовал следующий пример кода для объединения списков на основе моих требований.

...