后端分页函数
from django.core.paginator import Paginator, EmptyPage
import datetime
from django.core import serializers
import json
from django.db import models
class BizManager(models.Manager):
def get_by_natural_key(self, id):
return self.get(id=id)
class Biz(models.Model):
objects = BizManager()
name = models.CharField(u'名称', max_length=32)
updated_date = models.DateTimeField(u'更新时间', auto_now=True)
class Meta:
verbose_name = u"业务"
verbose_name_plural = u"业务"
def natural_key(self):
return {"id": self.id,"name": self.name}
def page_to(Qset, page, page_size, fields=()):
count = Qset.count()
paginator = Paginator(Qset, page_size)
try:
data_ = paginator.page(page)
except EmptyPage:
data_ = paginator.page(paginator.num_pages)
if fields:
data = serializers.serialize('json', data_, fields=fields, use_natural_foreign_keys=True)
else:
data = serializers.serialize('json', data_, use_natural_foreign_keys=True)
data = json.loads(data)
return (count, data)
``