class StartHandler(object):
  ..........    ordered_list = [] # 排序规则由 用户指定。
def get_ordered_list(self):
return self.ordered_list or ["id", ] # 默认使用 id 进行排序
per_page = 10 # 默认每页显示,多少数据。 也可在子类中,自行定制
def check_list_view(self, request):# ##################4.获取排序######################
order_list = self.get_ordered_list() # 处理 从数据库 取到的数据 # 用户访问的表 self.model_class
query_set = self.model_class.objects.all().order_by(*order_list) # 计算总数量,和 表格显示内容时,都需要,就提取出来了
# ###############处理分页#################
'''1.根据用户访问页面,计算出索引的位置, 比如 page=3
2. 生成html页码
'''
all_count = query_set.count()
query_params = request.GET.copy() # page=1&level=2
query_params._mutable = True # request.get中的值默认是不能被修改的。加上这句代码就可以修改了 pager = Pagination(
current_page=request.GET.get("page"), # 用户访问的当前叶
all_count=all_count, # 数据库一共有多少数据
base_url=request.path_info, # 所在的url 就是 ?page=1 之前的URL
# 用于保留,用户的请求信息,比如 level=2 被用户先选中。 那么分页后。因为查询的东西少了,分页也应该想要的减少,
# 但是level=2这个, 请求的信息!不能因为。分页的原因。而减少。
query_params=query_params,
per_page=self.per_page, # 每页显示多少数据。
)     ...............
return render(request, "stark/changelist.html",
{"header_list": header_list, "data_list": data_list,
"body_list": body_list,
"pager": pager,
"add_btn": add_btn})

也可以在,自己的类中指定。 排序的方式。

class UserInfoHandler(StartHandler):
# 自定制,展示页面, 需要展示的东西。 根据每张表的不同。 自己编写!
list_display = [StartHandler.display_checkbox, "name", "age", "depart", get_choice_txt("班级", "classes"),
get_choice_txt("性别", "gender"), StartHandler.display_edit, StartHandler.display_del]
per_page = 10 # 自定制 每页显示 多少 数据 ordered_list = ["id"] # 自定制,用于排序的字段。 默认使用 id 正向排序。 可以自定制   ....................

stark组件开发之排序的更多相关文章

  1. stark组件开发之列表页面定制列

    先看一张页面展示的效果图: 看一看我的  model 表!是什么样子: 看一看数据库是什么样子: 看 页面展示图,有表头. 有数据.模型表中,每一个字段, 都指定了 verbose_name. 如何解 ...

  2. stark组件开发之列表页面应用示例

    已经解决的,自定义的扩展函数,功能.但是 不可能返回. 一个 固定的页面把!  应该是,点击那条 记录之后的编辑, 就会跳转到相应的,编辑页面.所以 这个标签的  <a href="/ ...

  3. stark组件开发之关键搜索

    - 模糊搜索: 在页面生成一个表单.  以get 方式, 将数据提交到.当前查看页面. 后台接收数据,然后进行筛选过滤. 着个也需要,用户自定制!   定义一个  search_list  这个值,默 ...

  4. stark组件开发之添加功能实现

    添加功能,还是使用, form 组件来完成!  并且 完成添加之后,需要保留原搜索条件. def memory_url(self): '''用于反向生成url, 并且携带,get请求的参数,跳转到下一 ...

  5. stark组件开发之分页

    """ 分页组件 """ class Pagination(object): def __init__(self, current_page ...

  6. stark组件开发之组合搜索页面效果和 URL

    页面效果,只是样式.这个好解决!yield 的时候. 返回几个样式出去就好了! 并且前端写上一些样式的css {% if search_group_row_list %} <div class= ...

  7. stark组件开发之组合搜索实现思路

    - 关键字搜索. 可以做到的效果是, 输入20. 后太通过 Q()  函数. 来实现.  搜索是一个大的问题点. -  要想实现组合搜索, 首先要 明确的一点是. 在我当前的页面上, 正在进行展示的是 ...

  8. stark组件开发之批量操作

    class UserInfoHandler(StartHandler): ....... # 批量操作功能的列表,添加则显示, 使用此功能.需要将StartHandler.display_checkb ...

  9. stark组件开发之编辑功能实现

    编辑功能.和添加一样! 唯一不同的就是, 需要编辑一个指定的  记录.这就需要,在列表页面, 渲染编辑的时候,添加一个 id 值: class UserInfoHandler(StartHandler ...

随机推荐

  1. 用Redis存储Tomcat集群的Session实现session共享

    一.存储 前段时间,我花了不少时间来寻求一种方法,把新开发的代码推送到到生产系统中部署,生产系统要能够零宕机.对使用用户零影响. 我的设想是使用集群来搞定,通过通知负载均衡Nginx,取下集群中的To ...

  2. RabbitMQ 死信队列 延时

    package com.hs.services.config; import java.util.HashMap; import java.util.Map; import org.springfra ...

  3. eclipse开启时报错问题

    eclipse启动时报如下错误: Unable to read workbench state.Workbench UI layout will be reset 不能找到正式的工作台,工作台UI的布 ...

  4. SPI、I2C、UART、I2S、GPIO、SDIO、CAN 简介

    转自http://sanwen.net/a/fmxnjoo.html SPI.I2C.UART.I2S.GPIO.SDIO.CAN,看这篇就够了 总线 总线,总要陷进里面.这世界上的信号都一样,但是总 ...

  5. Android Studio设置连续按两次退出APP

    主要是在onKeyDown方法中进行操作,直接上代码. private long mTime; @Override public boolean onKeyDown(int keyCode, KeyE ...

  6. requests_html 使用

    安装 pip install requests-html #2种方式爬取 博客园from requests_html import HTMLSession session=HTMLSession() ...

  7. js数组条件筛选——map()

    在对象数组中检索属性为指定值得某个对象使用map()就非常方便. 对象数组 var studentArray = [ {"name":"小明","ge ...

  8. 使用IntelliJ IDEA创建简单的Dubbo实例

    这个博客是在https://blog.csdn.net/Crazer_cy/article/details/80397649篇文章上的基础上,自己学习用的. Zookeeper为dubbo的注册中心, ...

  9. Open SuSE中自定义的环境变量

    针对与其它发行版本的Linux,网络上给出的添加环境变量的位置都是在/etc/profile文件中添加.在Open SuSE中也有/etc/profile文件,不过从该文件的前几行注释可以看出,官方建 ...

  10. mysql数据库中指定值在所有表中所有字段中的替换

    MySQL数据库: 指定值在数据库中所有表所有字段值的替换(存储过程): 1.写一个存储过程,查指定数据库中所有的表名: CREATE PROCEDURE init_replace(in orig_s ...