【问题标题】:why pagination is not showing ? django为什么分页不显示? django
【发布时间】:2022-09-21 23:36:43
【问题描述】:
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})

// Code for 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 也没有显示任何内容......

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如它目前所写的那样,很难准确地说出你在问什么。

标签: python django for-loop pagination frameworks


【解决方案1】:

======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>

【讨论】:

    猜你喜欢
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    • 2021-10-09
    • 2017-06-28
    相关资源
    最近更新 更多