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也改成如下

到此分页功能已经完成,快去刷新网页看看效果吧

posted @ 2018-02-28 10:46  sellsa  阅读(350)  评论(0编辑  收藏  举报