Django динамически изменяет наборы запросов

У меня есть приложение Django 2.2.28, работающее на Python 3.7.7, и я пытаюсь добавить, как мне кажется, необычный фильтр запросов. Одно из отображений генерируется набором запросов, который фильтруется обычным способом по базе данных PostgreSQL. Эти данные представляются с помощью пагинатора. Меня просят отфильтровать данные на дисплее дополнительным фильтром, используя данные, которые поступают из вызова REST API (не из базы данных). Упрощенная презентация, чтобы объяснить, что требуется, допустим, у меня есть дисплей с 2 столбцами, Id и Name, которые поступают из базы данных:

Id Name
1  George
2  Anne
3  Susan
4  Mark

Задача добавления заключается в добавлении 3-го столбца для статуса, который поступает из REST API путем передачи списка значений Id. Добавление статуса к приведенному выше дисплею теоретически выглядело бы так, если бы список идентификаторов был передан REST API:

Id Name     Status
1  George   True
2  Anne     False
3  Susan    True
4  Mark     False

Пользователи хотели бы отфильтровать отображение на основе статуса (True/False) и при этом иметь полную страницу результатов (4). Проблема в том, что если пользователь фильтрует только по Status == True, я хочу отфильтровать Id 2 и 3. Но в этом случае на экране будет только 2 результата. Мне нужно иметь следующее:

Id Name     Status
1  George   True
3  Susan    True
6  Helen    True
10 Ben      True

Для создания этого дисплея я должен сделать дополнительные вызовы REST API со списками дополнительных Ids, пока я не смогу заполнить дисплей 4 результатами. Это означает поиск значений Id, пока я не получу достаточно результатов для заполнения дисплея. Мне также нужно сохранить пагинацию (по крайней мере ... ссылок)

Любые идеи, предложения и т.д. будут очень приветствоваться! Спасибо!

Вернуться на верх