【发布时间】:2020-04-22 17:53:44
【问题描述】:
我的 Django 项目中有一个数据库,我正在对它进行查询。我想在不同的页面中显示回复。
如果请求为“无”,则分页工作完美。
但是每当我传递查询时,第一页都会显示我正在寻找的响应,但下一页的行为就像请求是“无”一样。
这是我的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>
【问题讨论】:
标签: python django pagination