只是大概记录下步骤:

1.表结构:

class UserProfile(models.Model):
'''
用户表
'''
user = models.OneToOneField(User,verbose_name='后台用户')
#名字
name = models.CharField(max_length=32,verbose_name='姓名')
#头像
head_img = models.ImageField(blank=True,null=True,upload_to="uploads/portrait",verbose_name='头像')
#邮箱
email = models.EmailField(max_length=64,blank=True,null=True,verbose_name='邮箱')
#手机号
phone = models.CharField(verbose_name='手机号',max_length=128)
#部门
department = models.ForeignKey('Group',verbose_name='部门',null=True,blank=True)
#公司ip
ip = models.GenericIPAddressField(max_length=32,verbose_name='办公IP')
#秘钥
secret_key = models.TextField(verbose_name='密钥')
#备注
memo = models.TextField(verbose_name='备注', null=True, blank=True)
#创建时间
create_date = models.DateField(verbose_name='注册时间',auto_now=True)
def __str__(self):
return self.name
class Meta:
verbose_name = '成员'
verbose_name_plural = '成员'

2.views里函数

#导入分页相关模块
from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger
def user(request):
group = models.Group.objects.all()
#导入user表
userlist = models.UserProfile.objects.all()
#设置要显示的页面数量
paginator = Paginator(userlist,10)
page = request.GET.get('page')
try:
userlist_objs = paginator.page(page)
print(userlist_objs)
except PageNotAnInteger:
#如果页面不是一个整数,交付第一页。
userlist_objs = paginator.page(1)
except EmptyPage:
userlist_objs = paginator.page(paginator.num_pages)
return render(request,'member/user.html',
{'userlist_objs':userlist_objs,'group':group})
#将被分页模块处理过的导入模板中

3.template里

导入分页处理的自定义标签
{% load memtags %}
用户信息
<tbody>
{% for user in userlist_objs %}
<tr class="gradeX">
<td class="text-center" name="id" value="{{ user.id }}" data-editable='false'>
<input name="id" value="{{ user.id }}" type="checkbox" class="i-checks">
</td>
<td class="text-center hostname"> <a href="{% url 'userdetail' user.id %}">{{ user.name }}</a></td>
<td class="text-center">{{ user.department }}</td>
<td class="text-center">{{ user.ip }}</td>
<td class="text-center">{{ user.phone }}</td>
<td class="text-center" data-editable='false'>
<a value="#" class="conn btn btn-xs btn-warning">分发</a>
<a href="{% url 'userdetail' user.id %}" class="btn btn-xs btn-info">详细资料</a>
</td>
</tr>
{% endfor %}
</tbody> 分页点击 <div class="col-sm-6">
<div class="dataTables_paginate paging_simple_numbers" id="editable_paginate">
<ul class="pagination" style="margin-top: 0; float: right">
{% if userlist_objs.has_previous %}
<li class="paginate_button previous disabled" aria-controls="editable" tabindex="0" id="editable_previous">
<a class="?page={{ userlist_objs.previous_page_number }}" href="#">Previous</a>
</li>
{% endif %}
{% for page_num in userlist_objs.paginator.page_range %}
{% gusee_page userlist_objs.number page_num %}
{% endfor %}
{% if userlist_objs.has_next %}
<li class="paginate_button next disabled" aria-controls="editable" tabindex="0" id="editable_next">
<a class="page" href="#">Next</a>
</li>
{% endif %} </ul>
</div>
</div>

4.自定义标签方法

#!/usr/bin/env python
# -*- coding:utf-8 -*-
from django import template
from django.utils.html import format_html
from django.template.defaultfilters import stringfilter
from django.utils.encoding import force_text
from django.utils.safestring import mark_safe register = template.Library() @register.simple_tag
def gusee_page(current_page,loop_num):
offset = abs(current_page - loop_num)
if offset <5:
if current_page == loop_num:
page_ele = ''' <li class="paginate_button active" aria-controls="editable" tabindex="0"><a class="page" href="?page=%s" title="第%s页">%s</a></li>'''%(loop_num,loop_num,loop_num)
else:
page_ele = ''' <li class="paginate_button" aria-controls="editable" tabindex="0"><a class="page" href="?page=%s" title="第%s页">%s</a></li>'''%(loop_num,loop_num,loop_num) return format_html(page_ele)
else:
return ''

7.django之自定义分页记录的更多相关文章

  1. django上课笔记2-视图CBV-ORM补充-Django的自带分页-Django的自定义分页

    一.视图CBV 1.urls url(r'^login.html$', views.Login.as_view()), 2.views from django.views import View cl ...

  2. Django学习---自定义分页

    自定义分页 简单例子: urls.py: from django.contrib import admin from django.urls import path from django.conf. ...

  3. Django框架---- 自定义分页组件

    分页的实现与使用 class Pagination(object): """ 自定义分页 """ def __init__(self,cur ...

  4. django【自定义分页】

    1. views.py def app(request): page_info = PageInfo(request.GET.get('p'), 6, 100, request.path_info, ...

  5. Django之自定义分页

    分页功能在每个网站都是必要的,对于分页来说,其实就是根据用户的输入计算出应该显示在页面上的数据在数据库表中的起始位置. 1. 每页显示的数据条数 2. 每页显示页号链接数 3. 上一页和下一页 4. ...

  6. Django - Cookie、Session、自定义分页和Django分页器

    2. 今日内容 https://www.cnblogs.com/liwenzhou/p/8343243.html 1. Cookie和Session 1. Cookie 服务端: 1. 生成字符串 2 ...

  7. Django之Cookie、Session和自定义分页

    cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不 ...

  8. Django的用户认证组件,自定义分页

    一.用户认证组件 1.auth模块 from django.conrtrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: 1)authen ...

  9. Django自定义分页、bottle、Flask

    一.使用django实现之定义分页 1.自定义分页在django模板语言中,通过a标签实现; 2.前段a标签使用<a href="/user_list/?page=1"> ...

随机推荐

  1. display : -webkit-box-inline 我见

    发现: 最近在做移动端的东西,说起移动端弹性盒子布局真是无往不利,用起来特别爽,我也是偶尔间发现的这个属性并且它的用法,在网上基本查不到这个属性的资料(个人看法).如果没有听说过(display:bo ...

  2. 知识梳理HTML篇

    HTML 浏览器内核: IE:trident         Firefox : gecko        Safari/chrome : webkit        Opera : presto(新 ...

  3. ASP.NET 5与MVC 6中的新特性

    差点忘了提一句,MVC 6中默认的渲染引擎Razor也将得到更新,以支持C# 6中的新语法.而Razor中的新特性还不只这一点. 在某些情况下,直接在Web页面中嵌入某些JSON数据的方式可能比向服务 ...

  4. [设计模式] javascript 之 桥接模式

    桥接模式说明 定义:分离抽象化与实现化,使之可以自由独立的变化: 说明:由于软件环境需求原因,使得类型抽象具有多种实现以自身变化定义等情况,这使得我们要分离抽象实现与具体实现,使得抽象化与实现化解耦, ...

  5. Jquery控制滚动显示欢迎字幕v2

    Jquery控制滚动显示欢迎字幕v2: 之前做的那个比较适合测试环境,但要套入到网站中,有两个按钮在那摆着,还是不太好看.后面对代码进行了修改,如下: 参考代码: <html> <h ...

  6. AlwaysOn可用性组测试环境安装与配置(一)--SQL群集环境搭建

    一.测试环境介绍 1. 宿主使用工作站(HYPR-V)基本配置如下: 处理器:Intel(R) Core(TM) i5-4470 CPU @ 3.20GHz 3.20GHz 内存(RAM):8.00G ...

  7. hibernate中get,load,list,iterate的用法及比较

    首先,get和load都是查询单个对象,而list和iterate为批量查询 注意以下写法仅针对hibernate3的语法. 使用案例如下: // 1. get和load 的用法 Person p = ...

  8. 【C语言入门教程】7.1 结构体类型变量的定义和引用

    前面学习了变量和数组这些简单的数据结构,它们的特点是必须使用规定的数据类型.例如数组被定义为整型后,它的所有存储单元都是由整型构成.现实生活中某一类事物的共同属性可能是由不同的数据类型组成的集合,或者 ...

  9. jquery左右滑动效果的实现

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. 霸气!Nginx 中缓存静态文件秘籍

    导读 这篇教程说明你应该怎样配置 nginx.设置 HTTP 头部过期时间,用 Cache-Control 中的 max-age 标记为静态文件(比如图片. CSS 和 Javascript 文件)设 ...