django 分页 pagination的使用记录

1.安装

pip install django-pagination

2.修改setting.py文件

INSTALLED_APPS = [    # **    ‘pagination‘,]
MIDDLEWARE_CLASSES = (
       # ...
       ‘pagination.middleware.PaginationMiddleware‘,
   )
TEMPLATE_CONTEXT_PROCESSORS = [    ‘django.contrib.auth.context_processors.auth‘,    ‘django.core.context_processors.debug‘,    ‘django.core.context_processors.i18n‘,    ‘django.core.context_processors.media‘,    ‘django.core.context_processors.request‘,    ‘djangobb_forum.context_processors.forum_settings‘,]

3.在要进行列表分页的页面(template)的页面上方(最好是最上面)中 导入它的tag

{% load pagination_tags %}
4.在你的模板(template)页面上,对你想要分页的列表变量(object_list)进行分页,在模板中写如下代码:(这段短代码的位置要在 放在 你显示 object_list 之前)

{% autopaginate object_list %}
5.上面对列表分页后默认每页有20个,如果你想自己自定义,可以这样:

{% autopaginate object_list 10 %}
这样对列表分页后每页显示10个。

PS:Django 1.9报错解决

1)AttributeError: ‘WSGIRequest‘ object has no attribute ‘REQUEST‘

搜索找到 middleware.py 文件(我的在python2.7\Lib\site-packages\pagination),

把 return int(self.REQUEST[‘page‘])
修改成 return int(self.POST[‘page‘])

2)TypeError: sequence index must be integer, not ‘slice‘

搜索找到 pagination_tags.py (我的在 python2.7\Lib\site-packages\pagination\templatetags),

#first = set(page_range[:window])
#last = set(page_range[-window:])

#current = set(page_range[current_start:current_end])

修改为

first = set(list(page_range)[:window])
last = set(list(page_range)[-window:])

current = set(list(page_range)[current_start:current_end])

时间: 2024-07-31 20:13:11

django 分页 pagination的使用记录的相关文章

django分页功能,templatetags的应用

django 将不会将得到的html代码自动转化 from django.utils.html import format_html html =''' <a href='http://www.china.cn'>中国</a>''' format_html(html) django分页 分页功能基本操作 from django.core.import Paginator li=[11,12,13,22,24,25] p=Paginator(li,3) #将li传入,每页显示3条 p

Django -- 分页 -- 批量导入

Django --  分页 分页 Django提供了一些类实现管理数据分页,这些类位于django/core/paginator.py中 Paginator对象 Paginator(列表,int):返回分页对象,参数为列表数据,每面数据的条数 属性 count:对象总数 num_pages:页面总数 page_range:页码列表,从1开始,例如[1, 2, 3, 4] 方法 page(num):下标以1开始,如果提供的页码不存在,抛出InvalidPage异常 异常exception Inva

django 分页组件

一.仿django分页功能自己实现 urls.py 1 2 3 4 5 6 7 8 9 from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [     url(r'^admin/', admin.site.urls),     url(r'^index.html$', views.index),     ] views.py 1 2 3 4

django 分页例子

django 分页例子 安装 python3.6 -m pip install django-pure-pagination==0.3.0 设置 settings.py INSTALLED_APPS = [ 'pure_pagination', ] PAGINATION_SETTINGS = { 'PAGE_RANGE_DISPLAYED': 3, 'MARGIN_PAGES_DISPLAYED': 2, 'SHOW_FIRST_PAGE_WHEN_INVALID': True, } DISPL

Django框架(十五)—— Django分页组件

Django分页组件 一.分页器 数据量大的话,可以分页获取,查看 例如:图书管理中,如果有成千上万本书,要是都在一个页面中渲染出来,会影响页面美观,所以就要用分页器分页渲染 二.分页器的使用 基本写法 基本写法: 后端: 总数据拿出来 生成分页器Paginator对象(对象里有属性和方法) 生成当前页的对象,current_page=paginator.page(当前页码) 取出前台传过来的页码,current_page_num = int(request.GET.get('page')) -

django 分页(2) 使用类 页码显示

django 分页显示页码 views.py 显示11页码 1 2 3 4 5 6 7 8 9 10 11 if 总页数(10) < 11 起始位置 1 - 10总页数 else 总页数 > 11 IF 当前页 小于 6 起始位置 1 结束页 11 IF 当前页 大于 6 IF 如果结束页 > 总页数 起始值 6 - 5 总页数 else 起始值 6 - 5 结束页 6+5 #!/usr/bin/env python #_*_coding:utf-8_*_ from django.sho

Django分页和查询参数的问题

查询是通过get的方式,之前没有分页之前,url是这样的: http://hostname/search?query=port%3A8080 那么我的想法是如果分页了. 1,不带page参数了.next之后就加载下一页的内容 http://hostname/search?query=port%3A8080 请问这个是通过post传参吗? 2,使用官方文档中的(目前的方案) http://hostname/search?query=port%3A8080?page=2 但是,在现实情况下.?pag

Python+Django+SAE系列教程13-----MySQL记录的添\删\改

建立了数据库后,我们就来做一个简单的表(person_classroom)的添加.删除.修改的操作. 首先我们建立一个添加的页面的模板Classroom_Add.html(添加的表单)并把它放在Bidding\templates\person中: Classroom_Add.html: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <title>数据库操作

Django 分页查询并返回jsons数据,中文乱码解决方法

一.引子 Django 分页查询并返回 json ,需要将返回的 queryset 序列化, demo 如下: # coding=UTF-8 import os from django.core import serializers from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage from django.shortcuts import render from django.http import