首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >优雅地使用django进行分页(自定义tag)

优雅地使用django进行分页(自定义tag)

作者头像
羽翰尘
修改2019-11-26 16:10:04
6460
修改2019-11-26 16:10:04
举报
文章被收录于专栏:技术向技术向

本文由腾讯云+社区自动同步,原文地址 https://cloud.tencent.com/developer/article/1541081

背景 使用django自带的 官方的分页器做了一个网站,但是分页的效果过于丑陋。只能展示上一页、下一页、总页数、当前页码。 而大多数的网站,基本都可以一次显示当前页码的临近页码,以及直接跳转到首页、末页、指定页。 下面是一个理想的分页器。

使用自定义tag实现分页器 其实使用JavaScript实现一个优雅的分页器并没有技术难度,只是繁琐的东西太多,尤其是当前页在最左边或者最右边时。使用一个开源的实现能减少工作量。我在这篇博客里找到了一个理想的分页器。 这篇博客使用到了自定义的tag, 可能需要看下官方教程 自定义tag使用要点: 1. 使用templatetags文件夹,与view.py同级(templatetags中要有__init__.py) 2. 将view.py的父文件夹放入setting.py中的INSTALLED_APP中 3. 使用 {% load proper\_paginate %} 对自己的tag进行加载.注意这里应该加花括号与百分号。 3. 重启django # 对原始分页器的修改 在使用中发现工作不正常,源码中{% for i in paginator|proper\_paginate:page\_obj.number %}出错, 可能是django版本不同造成的。我采用下述方案予以规避。 undefined 使用with语句在模板中定义变量,可以参考在模板中定义变量 修改后的完整的html模板如下: undefined 其他未解决问题: 1. 在{% with temp=articles.paginator|proper\_paginate:articles.number %}中, proper_paginate至少需要2个变量,那三个变量怎么办?

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-10-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景 使用django自带的 官方的分页器做了一个网站,但是分页的效果过于丑陋。只能展示上一页、下一页、总页数、当前页码。 而大多数的网站,基本都可以一次显示当前页码的临近页码,以及直接跳转到首页、末页、指定页。 下面是一个理想的分页器。
  • 使用自定义tag实现分页器 其实使用JavaScript实现一个优雅的分页器并没有技术难度,只是繁琐的东西太多,尤其是当前页在最左边或者最右边时。使用一个开源的实现能减少工作量。我在这篇博客里找到了一个理想的分页器。 这篇博客使用到了自定义的tag, 可能需要看下官方教程 自定义tag使用要点: 1. 使用templatetags文件夹,与view.py同级(templatetags中要有__init__.py) 2. 将view.py的父文件夹放入setting.py中的INSTALLED_APP中 3. 使用 {% load proper\_paginate %} 对自己的tag进行加载.注意这里应该加花括号与百分号。 3. 重启django # 对原始分页器的修改 在使用中发现工作不正常,源码中{% for i in paginator|proper\_paginate:page\_obj.number %}出错, 可能是django版本不同造成的。我采用下述方案予以规避。 undefined 使用with语句在模板中定义变量,可以参考在模板中定义变量 修改后的完整的html模板如下: undefined 其他未解决问题: 1. 在{% with temp=articles.paginator|proper\_paginate:articles.number %}中, proper_paginate至少需要2个变量,那三个变量怎么办?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档