В моем проекте Django есть база данных, по которой я делаю запросы. Я хотел бы отобразить ответы на разных страницах.
Если запрос "нет", нумерация страниц работает безупречно.
Но всякий раз, когда я пропускаю запрос, на первой странице отображаются ответы, которые я получаю. ищет, но следующие страницы ведут себя так, как если бы запрос был "none".
Вот мой views.py
def search(request):
query = request.GET.get('query')
if not query:
products_list= Product.objects.all()
else:
products_list = Product.objects.filter(name__icontains=query)
if not products_list.exists():
products_list = Product.objects.filter(brand__icontains=query)
title = "Results: %s" % query
paginator = Paginator(products_list, 9)
page = request.GET.get('page',1)
try:
products = paginator.page(page)
except PageNotAnInteger:
products = paginator.page(1)
except EmptyPage:
products = paginator.page(paginator.num_pages)
context = {
'products': products,
'title': title,
'paginate': True,
}
return render(request, 'finder/search.html', context)
И html:
<nav aria-label="">
<ul class="pager">
{% if products.has_previous %}
<li><a href="?page={{ products.previous_page_number }}">Previous</a></li>
{% endif %}
{% if products.has_next %}
<li><a href="?page={{ products.next_page_number }}">Next</a></li>
{% endif %}
</ul>
</nav>