• 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] #将带有定制排序的数据传给前端
  • 相关阅读:
    URL收藏
    web网站防攻击策略
    网络编程
    Tomcat
    UML学习
    大数据学习
    PHP学习
    SYNC CSDN
    在浏览器中打开本地程序
    内存管理工具,帮助检查内存泄露及野指针问题
  • 原文地址:https://www.cnblogs.com/aaaajayheng1990/p/10949061.html
Copyright © 2020-2023  润新知