zoukankan      html  css  js  c++  java
  • CRM--对数据进行排序

    一:需求

    在crm系统中对数据展示时候,我们应该提供接口给使用我们stark组件的用户自定制排序方法。从而达到个性化排序数据

    二:所需知识点

    order_by

    三:实现思路

    1. 在用户接口类中定制排序列表
    2. 在stark组件中设置默认排序方式
    3. 在显示列表之前获取排序方式,在默认情况下会优先找到用户接口,用户接口没有设置会找我们默认接口排序
    4. 在视图函数中,获取数据后进行排序

    四:实现代码

    应用.stark.py:

    class UserHandler(StarkHandler): 
    
    
        order_list = ['-age']  # 自定义排序方法
    
    site.register(models.UserInfo, UserHandler)

    stark.py:


    class StarkHandler(object):
      order_list = ['-id'] #默认以id排序

    def get_order_list(self):
      """
      拿到用户设置排序方法或者默认排序方法
      """
    return self.order_list # 拿到排序方法



    def changelist_view(self, request): """ 用户列表函数 :return: """ # 1 处理排序 order_list = self.get_order_list() #拿到排序条件 query_set = self.model_class.objects.all().order_by(*order_list) #将排序条件放入查询语句中
    这里要注意,排序是以列表的形式,可能有多个字段,所以在传入排序条件的时候需要带上*
    # 2 处理页码 # all_count = self.model_class.objects.all().count() all_count = query_set.count() query_params = request.GET.copy() query_params._mutable = True page = Pagination(current_page=request.GET.get('page'), all_count=all_count, base_url=request.path_info, query_params=query_params, per_page=self.per_page_count) data_list = query_set[page.start:page.end] #将带有定制排序的数据传给前端
  • 相关阅读:
    JAVA BASE64
    Mysql Index extends优化
    JAVA异步加回调的例子
    TCP长连接和短连接的区别
    浅析RPC概念框架
    MySQL Index Merge Optimization
    一简单的RPC实例(Java)
    return语句的用法
    java中对象和对象的引用
    UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
  • 原文地址:https://www.cnblogs.com/aaaajayheng1990/p/10949061.html
Copyright © 2011-2022 走看看