Django 实现翻页功能
2011-05-13
Django实现翻页功能很简单,直接使用Django 自带的Paginator模块就可以实现
源代码:
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from website.myadd.models import item
def list(request):
item_list = item.objects.values("img_url","num_iid").filter(num_iid__isnull=False).order_by("-id")
paginator = Paginator(item_list,50)
p = request.GET.get('page','')
try:
items = paginator.page(p)
except PageNotAnInteger:
items = paginator.page(1)
except EmptyPage:
items = paginator.page(paginator.num_pages)
return render_to_response('list.html',{'items': items})
翻页模版:
{% block content %}
{% for item in items.object_list %}
item.img
{% endfor %}
{% if items.has_previous %}
[previous](?page={{ items.previous_page_number }})
{% endif %}
Page {{ items.number }} of {{ items.paginator.num_pages }}.
{% if items.has_next %}
[next](?page={{ items.next_page_number }})
{% endif %}