# coding=utf-8 import os from base import init_env os.environ["DJANGO_SETTINGS_MODULE"] = "configs.dev_zjl" init_env(False) from apps.web.device.models import Device from apps.web.common.proxy import QuerySetProxy class SubQuerySet(object): def __init__(self, numbers, flag): """ list [1, 2, 3, 4, ......] """ self._data = numbers self._count = len(numbers) self._flag = flag def count(self): print self._count return self._count @property def amountOfData(self): return self._data @amountOfData.setter def amountOfData(self, value): from copy import copy new_value = copy(value) self._data = new_value def skip(self, n): """ 跳过的意思就是有多少条数据不需要获得 """ assert n >= 0, "skip numbers must >=0 " self.amountOfData = self.amountOfData[n:] return self def limit(self, n): assert n >= 0, "skip numbers must >=0 " return self.__class__(self.amountOfData[:n], self._flag) def __iter__(self): for i in self.amountOfData: yield "{}-{}".format(self._flag, i) def do_1(): TestQuerySetOne = SubQuerySet(range(1, 97), "one") TestQuerySetTwo = SubQuerySet(range(97, 1001), "two") # 输出 第 3 页  TestPageIndex = 10 TestPageSize = 10 for i in QuerySetProxy(TestQuerySetOne, TestQuerySetTwo).paginate(pageIndex=TestPageIndex, pageSize=TestPageSize): print i do_1()