1.如何分页?
from django.shortcuts import render, get_object_or_404
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from .models import Article
from django.http import JsonResponse
def index(request):
page_data = Paginator(Article.objects.all(), 15)
page = request.GET.get('page')
try:
article = page_data.page(page) # contacts为Page对象!
except PageNotAnInteger:
# If page is not an integer, deliver first page.
article = page_data.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
article = page_data.page(page_data.num_pages)
return render(request, 'index.html', {'data', article})
2.分页结果如何作为json返回
if request.is_ajax():
page_data = Paginator(Article.objects.all(), 15)
page = request.GET.get('page')
try:
article = page_data.page(page) # contacts为Page对象!
except PageNotAnInteger:
# If page is not an integer, deliver first page.
article = page_data.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
article = page_data.page(page_data.num_pages)
return JsonResponse(list(article.object_list.values()), safe=False)
return render(request, 'index.html')