django分页及搜索后如何翻页
django自带了Pagnator
导入
from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage
分页
def pagn(data, limit, page):#分页
paginator = Paginator(data, limit)
try:
data = paginator.page(page)
except PageNotAnInteger:
data = paginator.page(1) except EmptyPage:
data = paginator.page(paginator.num_pages)
return data
搜索后翻页的时候由于搜索参数不会一起跟着传递,所以我们需要在js里面加上搜索参数
我的方法是通过window.location.href返回当前的url路径,如果有page去掉,加上page=拼接成新的url,该url了里包括了之前的搜索参数
function getUrl(){
var current_url = window.location.href;
var params = current_url.split('?');
var url = '';
//没有参数
if (params.length == 1){
url += '?'
}
else {
for (i = 0; i < params.length; i++) {
if (params[i].indexOf('page') == -1) {
if (i==0){
url += params[i] + '?'
}else{
url += params[i] + '&'
}
}
}
}
return url
}
href里面必须要是这样的127.0.0.1:8000/xxx而不能是127.0.0.1:8000/这样会报错/xxx&page=2是正确的路径,/&page=2是错误的路径,django无法解析
//下一页
function nextPage(node) {
var url = getUrl()
{% if datas.has_next %}
var href = url+"page={{ datas.next_page_number}}"
{% else %}
var href = url+"page={{ datas.number }}"
{% endif %}
node.href = href
}
function previousPage(node) {
var url = getUrl()
{% if datas.has_previous %}
var href = url+"page={{ datas.previous_page_number}}"
{% else %}
var href = url+"page={{ data.number }}"
{% endif %}
node.href = href
}
function page(node) {
var url = getUrl()
node.href = url+'page='+node.text
}
function turnPage(node){
var page = $("#input_page").val()
var url = getUrl()
node.href = url+'page='+page
}
django分页及搜索后如何翻页的更多相关文章
- bootstrap table 复选框选中后,翻页不影响已选中的复选框
使用的 jquery版本为 2.1.1 在项目中发现bootstrap table的复选框选中后,翻页操作会导致上一页选中的丢失,api中的 bootstrapTable('getSelections ...
- Web jquery表格组件 JQGrid 的使用 - 5.Pager翻页、搜索、格式化、自定义按钮
系列索引 Web jquery表格组件 JQGrid 的使用 - 从入门到精通 开篇及索引 Web jquery表格组件 JQGrid 的使用 - 4.JQGrid参数.ColModel API.事件 ...
- JeeSite数据分页与翻页
本文章介绍的是JeeSite开源项目二次开发时的一些笔记,对于没有使用过JeeSite的可以不用往下看了,因为下面的代码是跟JeeSite二次开发相关的代码,不做JeeSite的二次开发,以下代码对您 ...
- jqgrid 翻页记录选中行
简单的jqgrid列表 $("#list").jqGrid({ url:contextPath + "/getList", postData: data, da ...
- 【WebForm】Repeater 序列号 在翻页情况下自增
asp.net Repeater控件分页时,序号列翻页重新从1开始计数问题的解决思路及方法: 一般情况下,使用 <%# Container.ItemIndex + 1% > 给序号列来自增 ...
- Django分页(二)
Django分页(二) 要求 .设定每页显示数据条数 # # .用户输入页码(第一页.第二页...) # # .设定显示多少页号 # # .获取当前数据总条数 # # .根据设定显示多少页号和数据总条 ...
- 解决Hexo博客模板hexo-theme-next的翻页按钮不正常显示问题
用Hexo搭了个Gitpage的博客,兴冲冲的发了11篇博文后发现翻页按钮不正常显示,显示为<i class="fa fa-angle-right"></i> ...
- PHP.25-TP框架商城应用实例-后台2-商品列表页-搜索、翻页、排序
商品列表页 1.翻页 控制器GoodsController.class.php添加方法lst(),显示列表页 在商品模型GoodsModel.class.php类中添加search方法 /** *实现 ...
- Atitit.列表页面and条件查询的实现最佳实践(2)------翻页 分页 控件的实现java .net php
)------翻页 分页 控件的实现java .net php 1. 关于翻页有关的几大控件::搜索框控件,显示表格控件,翻页器,数据源控件.. 1 2. 翻页的显示格式:: 1 2.1. 通常ui- ...
随机推荐
- JDK-8不是有效的Win32应用程序
- 57. Insert Interval (Array; Sort)
Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessa ...
- 对象池 object pool
对象池适用于: 对象的创建很耗时 对象频繁地释放再创建 对象池的实现:将释放的对象放进对象池中,在新建对象时,从对象池取对象 public class ObjectPool<T> wher ...
- HttpClient(一)
package com.cmy.httpClient; import org.apache.commons.httpclient.HttpClient; import org.apache.commo ...
- js td innerHTML
用value不好使,用innerHTML可以.JS:document.getElementById("aa").innerHTML="单元格"; body:&l ...
- 帧动画 连续播放多张图片动画 以及ui动画 SoundPool
drawable下有很多图片 可以 <?xml version="1.0" encoding="utf-8"?> <animation-li ...
- phpstorm2018.3的安装和激活和汉化
安装 第一步:解压并打开文件,运行安装程序,点击Next进入下一步, 第二步:选择软件安装目录,自定义选择安装根目录--> 注意!后面还需要找安装目录里的文件,所以记住安装到一个比较容易查看的目 ...
- Banner设计的视觉导向原则分析
Banner的布局方式 常见的Banner布局方式有五种,以下分别给出大致样式: 两栏式: 三栏式: 组合式: 一体式: 对角线式: 以上几种布局方式不分好坏,对于不同的主题.素材和文案可以自行选 ...
- jQuery nyroModal 插件遇到问题
nyroModal ver 1.6.2 弹出层插件 浏览更多 初始化大小问题 //页面加载完成后初始化 设置大小 $(function() { $.nyroModalSettings({ widt ...
- 百度词汇检索,计算PMI值
'''词汇检索百度返回值,并且计算PMI值的类''' from bs4 import BeautifulSoup import requests import re import pandas as ...