13、Django实战第13天:分页列表功能
我们看课程 机构列表页是需要分页的
为了完成分页功能,我们需要用到Django的一个开源开发库django-pure-pagination
workon mxonline pip install django-pure-pagination
安装完成之后,我们需要把'pure_pagination'加入到INSTALLED_APPS
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'users', 'courses', 'organization', 'operation', 'xadmin', 'crispy_forms', 'captcha', 'pure_pagination', ]
编辑organization.views.py,加上分页逻辑
... from pure_pagination import Paginator, PageNotAnInteger class OrgView(View): def get(self, request): #城市 all_citys = CityDict.objects.all() #课程机构 all_orgs = CourseOrg.objects.all() #机构数 org_nums = all_orgs.count() #对课程进行分页 try: page = request.GET.get('page', 1) except PageNotAnInteger: page = 1 p = Paginator(all_orgs, 3, request=request) #3表示每页显示的机构数 orgs = p.page(page) return render(request, 'org-list.html', { 'all_orgs': orgs, 'all_citys': all_citys, 'org_nums': org_nums, })
后台已经改成分页了,所以前端课程机构的for循环需要改下
然后把分页的html也改成如下
到此分页功能已经完成,快去刷新网页看看效果吧
每天进步一点,加油!