Я отправляю результат запроса из моей базы данных (объединяющей 3 модели) в один из моих шаблонов, позволяя пользователям фильтровать вывод.Отображение всей необходимой информации работает просто отлично, пока я не попытаюсь разбить результаты на страницы.Затем я получаю пустой QuerySet и «Страница 1 из 1» внизу.Это полностью сбивает меня с толку, поскольку необработанный набор загружается в шаблон без каких-либо помех.
Вот мои views.py:
products =Product.objects.all()
out = Sets.objects.filter(
ItemInSet__item__name__in=Product.objects.filter(metrics=1).values_list('product_name', flat=True)
).exclude(
ItemInSet__item__name__in=Product.objects.filter(metrics=0).values_list('product_name', flat=True)
).distinct()
page = request.GET.get('page', 1)
paginator = Paginator(out, 10) # show 10 per page
try:
out_p = paginator.page(page)
except PageNotAnInteger:
out_p = paginator.page(1)
except EmptyPage:
out_p = paginator.page(paginator.num_pages)
return render(request, 'item_list.html', {'products': products, 'results': out_p})
И мой шаблон:
<table id="id_item_list" >
{% if results.all %}
{% for result in results %}
<tr>
<form method="GET">
{% csrf_token %}
<ul>
<a href="/result/{{result.slug}} class="list-group-item list-group-item-action">
<h4>{{ result.name|title }}</h4>
<!-- and few more objects from Sets and ItemInSets etc. -->
</a>
</ul>
</form>
</tr>
{% endfor %}
{% else %}
<p>No Sets matched your criteria.</p>
{% endif %}
</table>
<div class="pagination">
<span class="step-links">
{% if results.has_previous %}
<a href="?page=1">« first</a>
<a href="?page={{ results.previous_page_number }}">previous</a>
{% endif %}
<span class="current">Page {{ results.number }} of {{results.paginator.num_pages }}.</span>
{% if results.has_next %}
<a href="?page={{ results.next_page_number }}">next</a>
<a href="?page={{ results.paginator.num_pages }}">last »</a>
{% endif %}
</span>
</div>
</div>
Результаты пусты, а нумерация страниц показывает только Страница 1 из 1 .Элементы не отображаются вообще.Когда я передаю набор без нумерации страниц ( out ), это нормально.Вызывает ли проблема проблему с несколькими моделями?Я видел подход с itertools, но объединение запросов не является моей непосредственной проблемой.Или это так?
Редактировать: следуя инструкциям в комментариях, проблема решена.Я обработал разбитые на страницы данные как QuerySet, а не как страницу, что, в свою очередь, заставило меня использовать неподдерживаемый метод и не дало никаких результатов, просто так.