首页 > 解决方案 > 如何在 Django 分页中显示活动页面

问题描述

我正在使用 django 2.0 并尝试创建此博客,问题是一旦我单击下一页,分页部分中的活动栏不会将平均值从 1 更改为 2 参见图片

我不知道错在哪里

这是views.py

def post_list(request):
    object_list=Post.objects.filter(status='Published').order_by("-created")
    pages = pagination(request,object_list,3)
    context={
        'items':pages[0],
        'page_range':pages[1],
    }
    return render(request,"blog.html",context)

分页功能

from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator

def pagination(request,data,num=10):
    paginator = Paginator(data,num) # Show 5 contacts per page

    page = request.GET.get('page',5)
    try:
        items=paginator.page(page)
    except PageNotAnInteger:
        items=paginator.page(5)
    except EmptyPage:
        items=paginator.page(paginator.num_pages)
    index=items.number=1
    max_index=len(paginator.page_range)
    start_index=index - 5 if index >= 5 else 0
    end_index=index + 5 if index <= max_index - 5 else max_index
    page_range=paginator.page_range[start_index:end_index]
    return items, page_range

和 pagination.html

<nav>
{% if items.has_other_pages %}
  <ul class="pagination">
    {% if items.has_previous %}
      <li><a href="?page={{ items.previous_page_number }}">&laquo;</a></li>
    {% else %}
      <li class="disabled"><span>&laquo;</span></li>
    {% endif %}
    {% for i in page_range %}
      {% if items.number == i %}
        <li class="active"><span>{{ i }} <span class="sr-only">(current)</span></span></li>
      {% else %}
        <li><a href="?page={{ i }}">{{ i }}</a></li>
      {% endif %}
    {% endfor %}
    {% if items.has_next %}
      <li><a href="?page={{ items.next_page_number }}">&raquo;</a></li>
    {% else %}
      <li class="disabled"><span>&raquo;</span></li>
  </ul>
    {% endif %}
{% endif %}
  </nav>

博客.html

{% for obj in items %}
    {% if obj.status == 'Published' %}
      <article>
        <img src="{{obj.thumb.url}}" alt="" />
        <div class="post-content">
          <h2>{{obj.title}}</h2>
            {{obj.created}}  Author {{obj.user}} <h4><a href="{% url 'category_detail' slug=obj.Category.slug %}">{{obj.Category}}</a></h4>
            <hr/>
            <p>{{obj.body}}</p>
    <a class="mtr-btn button-navy ripple" href= "{% url 'post_detail' obj.slug %}">Continue reading →&lt;/a><br>
    </div>
    </article>
    {% endif %}
{% endfor %}
{% include 'pagination.html' %}
</div>

标签: javascriptpythonjqueryhtmldjango

解决方案


= 1从行中删除index = items.number = 1


推荐阅读