前端页面:
<div class="col-sm-6">
<div class="dataTables_paginate paging_simple_numbers" id="dataTables-example_paginate">
<ul class="pagination">
{% if tdata.has_previous %}
<li class="paginate_button previous " aria-controls="dataTables-example" tabindex="0" id="dataTables-example_previous">
<a href="?page={{ tdata.previous_page_number }}">上一页</a>
</li>
{% else %}
<li class="paginate_button previous disabled " aria-controls="dataTables-example" tabindex="0" id="dataTables-example_previous">
<a>上一页</a>
</li>
{% endif %}
{% for page in tdata.paginator.page_range %}
{% limit_page tdata.number page %}
{% endfor %}
{% if tdata.has_next %}
<li class="paginate_button previous " aria-controls="dataTables-example" tabindex="0" id="dataTables-example_previous">
<a href="?page={{ tdata.next_page_number }}">下一页</a>
</li>
{% else %}
<li class="paginate_button previous disabled " aria-controls="dataTables-example" tabindex="0" id="dataTables-example_previous">
<a>下一页</a>
</li>
{% endif %}
</ul>
</div>
</div>
templatetag
from django import template
from django.utils.html import format_html
register = template.Library()
@register.simple_tag
def limit_page(current_page, pg):
scope = abs(current_page - pg)
if scope < 3:
if current_page == pg:
page_re = """<li class="paginate_button previous active"
aria-controls="dataTables-example" tabindex="0" id="dataTables-example_previous">
<a > %s </a>
</li>""" % pg
else:
page_re = """<li class="paginate_button previous "
aria-controls="dataTables-example" tabindex="0" id="dataTables-example_previous">
<a href="?page= %s "> %s </a>
</li>""" % (pg, pg)
return format_html(page_re)
else:
return ""
views:
from django.core.paginator import Paginator
from django.core.paginator import EmptyPage
from django.core.paginator import PageNotAnInteger
def page_t(request):
page = request.GET.get("page")
tdata = models.Tpage.objects.all()
paginator = Paginator(tdata, 2) # 每页多少条数据
try:
tdata = paginator.page(page) # 返回 page(页数)的数据
except PageNotAnInteger:
tdata = paginator.page(1) # 第一页
except EmptyPage:
tdata = paginator.page(paginator.num_pages) # 最后一页
return render(request, "table.html", {"tdata": tdata})