【发布时间】:2019-04-23 04:44:37
【问题描述】:
我正在使用 django 2.0 并尝试创建此博客,问题是一旦我单击下一页,分页部分中的活动栏不会将平均值从 1 更改为 2,请参阅图片 image
不知道错在哪里
这里是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 }}">«</a></li>
{% else %}
<li class="disabled"><span>«</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 }}">»</a></li>
{% else %}
<li class="disabled"><span>»</span></li>
</ul>
{% endif %}
{% endif %}
</nav>
blog.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 →</a><br>
</div>
</article>
{% endif %}
{% endfor %}
{% include 'pagination.html' %}
</div>
【问题讨论】:
-
index=items.number=1这一行在做什么?您将items.number设置为 1? -
是的,我将项目编号设置为 1 不正确或
-
当然不正确,那是活动页码。在您的模板中,您检查活动页面是否为 == I。
-
不知道有没有找到你
-
查看您的代码:
items是您的分页器的Page对象。删除= 1因为items.number应该是实际的页码。
标签: javascript python jquery html django