django内置分页功能扩展
实现自定制页码数类型
class myPaginator(Paginator):
def __init__(self,curr_page,per_page_num,*args,**kwargs):
self.curr_page=int(curr_page)
self.per_page_num=int(per_page_num) super(myPaginator,self).__init__(*args,**kwargs) def page_num(self):
curr_page=self.curr_page #当前页面
full_page=self.num_pages #总页数
per_page_num=self.per_page_num #显示页码数
half_per_page=int(per_page_num/2)
print(curr_page,full_page,per_page_num,half_per_page) if curr_page<=half_per_page:
return range(1,per_page_num+1)
elif curr_page>=(full_page-half_per_page):
return range(full_page-per_page_num,full_page)
else:
return range(curr_page-half_per_page,curr_page+half_per_page)
veiws:--------------------------------------------------------------------------------------
paginator=myPaginator(curr_page,10,root_lst,10)#(当前页码,一页中显示的页码数个数,内容,一页中的内容)
try:
posts=paginator.page(curr_page)
except EmptyPage:
posts=paginator.page(1)
except PageNotAnInteger:
posts=paginator.page(paginator.num_pages)
html:---------------------------------------------------------------------------------------------------
{% for foo in posts.object_list %} #遍历一页中的内容
<li>{{ foo.name }} - {{ foo.age }}</li> #一页中的其中一条内容
{% endfor %}
{% if posts.has_previous %} #当不存在上一页时的处理方法
<a href="/index?p={{ posts.previous_page_number }}">上一页</a>
{% else %}
<a href="#">上一页</a>
{% endif %}
{% for i in posts.paginator.page_num %} #显示的页码
{% if i == posts.number %}
<span style="display: inline-block;width:20px">{{i}}</span>
{% else %}
<a href="/index?p={{i}}" style="display: inline-block;width:20px">{{i}}</a>
{% endif %}
{% endfor %}
{% if posts.has_next %} #当不存在下一页时的处理方法
<a href="/index?p={{ posts.next_page_number }}">下一页</a>
{% else %}
<a href="#">下一页</a>
{% endif %}
django内置分页功能扩展的更多相关文章
- Django,ajax实现表格增删查改,Django内置分页功能。
1.工程目录 2.urls.py """Django_ajax URL Configuration The `urlpatterns` list routes URLs ...
- Django内置分页
一.django内置分页 from django.shortcuts import render from django.core.paginator import Paginator, EmptyP ...
- Django 内置分页的简单使用
1, 文档 https://docs.djangoproject.com/en/1.11.1/topics/pagination/ 2,视图 from django.core.paginator im ...
- Django 内置分页--Paginator类
官方文档 http://python.usyiyi.cn/django/topics/pagination.html 前端方法 http://www.tuicool.com/articles/RniU ...
- django -- 内置分页
urls.py from django.conf.urls import url from conn_oracle import views urlpatterns = [ url(r'^page/' ...
- django的内置分页
本节内容 自定义一个简单的内置分页 Django内置分页 Django内置分页扩展(继承) 自定义内置组件 自定义一个简单的内置分页 先用django自己自定制一个简单的内置分页,大概掌握内置分页的底 ...
- django内置的分页功能
django内置的分页功能 # 先导入需要查询的模型类 from game.models import Score # 导入内置的分页功能 from django.core.paginator imp ...
- Django内置权限扩展案例
当Django的内置权限无法满足需求的时候就自己扩展吧~ 背景介绍 overmind项目使用了Django内置的权限系统,Django内置权限系统基于model层做控制,新的model创建后会默认新建 ...
- Django内置的分页模块
自定义分页 未封装版: 优点:直观 缺点:代码乱,不易维护,可拓展性差 data = [] for i in range(1, 302): tmp = {"id": i, &quo ...
随机推荐
- 【转载】 星际争霸2的AI环境搭建
原文地址: https://blog.csdn.net/qq_40244666/article/details/80957644 作者:BOY_IT_IT 来源:CSDN -------------- ...
- Linux_x86下NX与ASLR绕过技术
本文介绍Linux_x86下NX与ASLR绕过技术,并对GCC的Stack Canaries保护技术进行原理分析. 本文使用存在漏洞代码如下: /* filename : sof.c */ #incl ...
- java基础(3)java常用API
1 ArrayList集合 01 创建 import java.util.ArrayList; /* 泛型:装在集合中的元素,全都是统一的一种类型.泛型必须是引用类型,不能是基本数据类型 */ pub ...
- Windows CMD 支持ls命令
/********************************************************************** * Windows CMD 支持ls命令 * 说明: * ...
- wikipedia 维基百科 语料 获取 与 提取 处理 by python3.5
英文维基百科 https://dumps.wikimedia.org/enwiki/ 中文维基百科 https://dumps.wikimedia.org/zhwiki/ 全部语言的列表 https: ...
- Property ‘password’ threw Exception
问题描述: Maven项目在tomcat启动的时候总是报Propety 'password' threw exception异常时,说明password不对,但核对之后没有问题 解决方案: 核对pas ...
- JavaScript中的匿名函数遇上!会怎么样
通常,我们声明一个函数test){},可以通过test()来调用这个函数.但是,如果我们在这个函数声明的末尾加上(),解析器是无法理解的. function test(){ console.log(' ...
- jstack命令定位java程序CPU利用率高的代码位置
高手是怎么使用jstack精确找到异常代码的(java程序CPU利用率高的情况) 请jstack神器来帮忙 本文介绍Linux环境下使用jstack定位问题的秘笈1.[top命令]找到CPU利用率持续 ...
- cordova插件列表
主要来源为http://blog.csdn.net/github_39500961/article/details/76270299 1.获取当前应用的版本号 cordova plugin add c ...
- linux git 保存用户名和密码
一.通过文件方式 1.在~/下, touch创建文件 .git-credentials, 用vim编辑此文件,输入内容格式: touch .git-credentials vim .git-crede ...