Django, разбиение на страницы по нескольким наборам запросов - PullRequest
1 голос
/ 20 марта 2020

Я пытаюсь предоставить конечную точку API, где она дает постраничный ответ для нескольких наборов запросов.

a = Foo.objects.filter_a()
b = Foo.objects.filter_b()


paginator = Paginator(a + b, 10) # a + b is just symbolic, add two querysets

page = 3
qs = paginator.page(page)

Предположим, что каждая страница содержит 10 элементов, # из a равно 23, тогда страница-3 будет верните 3 из a и 7 из b

И мы должны предположить, что a и b могут быть потенциально большими, и идеально поддерживать ленивость набора запросов

1 Ответ

0 голосов
/ 20 марта 2020

Вы можете использовать union для объединения двух или более наборов запросов:

paginator = Paginator(a.union(b, all=True), 10)

ИЛИ оператор | также может работать:

paginator = Paginator(a | b, 10)
...