CommonPaginator.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/usr/bin/env python
  2. #-*- coding: utf-8 -*-
  3. #update:2014-09-25 by liufeily@163.com
  4. from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
  5. def SelfPaginator(request,List,Limit):
  6. '''分页模块,用法:
  7. 1.view中引入:
  8. ex:from website.common.CommonPaginator import SelfPaginator
  9. 2.SelfPaginator需要传入三个参数
  10. (1).request:获取请求数据
  11. (2).List:为需要分页的数据(一般为*.objects.all()取出来数据)
  12. (3).Limit:为每页显示的条数
  13. ex:lst = SelfPaginator(request,mList, 5)
  14. 3.view需要获取SelfPaginator return的lst,并把lst返回给前端模板
  15. ex:kwvars = {'lPage':lst,}
  16. 4.前端需要for循环lPage也就是lst读取每页内容
  17. ex:{% for i in lPage %} ... {% endfor %}
  18. 5.模板页引入paginator.html
  19. ex:{% include "common/paginator.html" %}
  20. '''
  21. paginator = Paginator(List, int(Limit))
  22. page = request.GET.get('page')
  23. try:
  24. lst = paginator.page(page)
  25. except PageNotAnInteger:
  26. lst = paginator.page(1)
  27. except EmptyPage:
  28. lst = paginator.page(paginator.num_pages)
  29. return lst
  30. if __name__=='__main__':
  31. rList = User.objects.all()
  32. lst = SelfPaginator(request,rList,20)