为什么没有显示分页?django


def allProductCat(request, c_slug=None):
c_page = None
products_list = None
if c_slug is not None:
c_page = get_object_or_404(Category, slug=c_slug)
products_list = Product.objects.all().filter(category=c_page, available=True)
else:
products_list = Product.objects.all().filter(available=True)
paginator = Paginator(products_list, 6)
try:
page = int(request.GET.get('page', '1'))
except:
page = 1
try:
products = paginator.page(page)
except(EmptyPage, InvalidPage):
products = paginator.page(paginator.num_pages)
return render(request, "category.html", {'category': c_page, 'product': products})

//Html//代码

<div class="mx-auto">
{% if product.paginator.num_page %}
<hr>
<div class="text-center">
{% for pg in product.paginator.page_range %}
<a href="?page={{pg}}" class="btn btn-light btn-sm {% if product.number == pg %} active {% endif %}">{{pg}}</a>
{% endfor %}
</div>
{% endif %}
</div>

当我添加所有这些代码时,当我手动键入指向下一页的链接时,分页不会显示任何内容。它的工作非常完美。我不理解这段代码中的错误,而且当我键入任何内容时,这些div也不会显示里面的任何内容。。。

======views.py======

from django.core.paginator import Paginator
def HomeView(request):
show_data = VehicleModel.objects.all() # Queryset For pagiantion
# Pagination code start
paginator = Paginator(show_data, 3, orphans=1)
page_number = request.GET.get('page')
show_data = paginator.get_page(page_number)
# Pagination code end
context = {'page_number':page_number}
return render(request,'dashboard.html',context)

======在HTML中======

# <!-- Pagination Block with page number  -->
<div class="container mt-5">
<div class="row float-right ">
<span class="m-0 p-0">
{% if show_data.has_previous %} # <!-- For Previous Button -->
<a class="btn btn-outline-info" href="?page={{show_data.previous_page_number}}&ok=#ok">Previous</a>
{% endif %}

<span>{% for pg in show_data.paginator.page_range %} # <!-- For Page Numbers Buttons -->
{% if show_data.number == pg %}
<a href="?page={{pg}}" class="btn btn-sm btn-primary">
<span class="badge">{{pg}}</span>
</a>
{% else %}
<a href="?page={{pg}}" class="btn btn-sm btn-secondary">
<span class="badge">{{pg}}</span>
</a>
{% endif %}
{% endfor %}</span>
{% if show_data.has_next %} # <!-- For Next Button -->
<a class="btn btn-outline-info" href="?page={{show_data.next_page_number}}&ok=#ok">Next</a>
{% endif %}
</span>
</div>
</div>

最新更新