Привет! Я создаю страницу результатов поиска, которая объединяет несколько наборов запросов из нескольких баз данных, которые я хотел бы разбить на страницы как один набор.
, на мой взгляд, у меня есть:
def combined_search(request):
...
first_query_set = Mytable_db1.objects.select_related().filter(q)
first_count = first_query_set.count
second_query_set = Mytable_db2.objects.select_related().filter(q)
second_count = second_query_set.count
# combine querysets
combined_query_set = list(chain(first_query_set, second_query_set))
# create a new paginator instance with items-per-page
paginator = Paginator(combined_query_set, 5)
# get the page number from a get param if param is blank then set page to 1
page = int(request.GET.get('page', '1'))
# grab the current page from the paginator...
items = paginator.page(page)
...
Затем в моем шаблоне я хочу что-то вроде:
<h1>{{ first_count }} results in mydb1:</h1>
{% for x in first_query_set %}
<p>{{ x.field }}</p>
{% endfor %}
<h1>{{ second_count }} results in mydb2:</h1>
{% for y in second_query_set %}
<p>{{ y.field }}</p>
{% endfor %}
Проблема в том, что я хочу разбить на страницы оба набора, как если бы они были одним, но включая заголовки.Поэтому, если для первого набора есть только 2 результата, а для второго - 18, первый набор (включая заголовок) просто появится на первой странице, и у меня есть еще 3 страницы для второго набора.