zoukankan      html  css  js  c++  java
  • 分页和过滤

    def listmedicine(request):
        try:
            # .order_by('-id') 表示按照 id字段的值 倒序排列
            # 这样可以保证最新的记录显示在最前面
            qs = Medicine.objects.values().order_by('-id')
    
            # 查看是否有 关键字 搜索 参数
            keywords = request.params.get('keywords',None)
            if keywords:
                conditions = [Q(name__contains=one) for one in keywords.split(' ') if one]
                query = Q()
                for condition in conditions:
                    query &= condition
                qs = qs.filter(query)
    
            # 要获取的第几页
            pagenum = request.params['pagenum']
    
            # 每页要显示多少条记录
            pagesize = request.params['pagesize']
    
            # 使用分页对象,设定每页多少条记录
            pgnt = Paginator(qs, pagesize)
    
            # 从数据库中读取数据,指定读取其中第几页
            page = pgnt.page(pagenum)
    
            # 将 QuerySet 对象 转化为 list 类型
            retlist = list(page)
    
            # total指定了 一共有多少数据
            return JsonResponse({'ret': 0, 'retlist': retlist,'total': pgnt.count})
    
        except EmptyPage:
            return JsonResponse({'ret': 0, 'retlist': [], 'total': 0})
    
        except:
            return JsonResponse({'ret': 2,  'msg': f'未知错误
    {traceback.format_exc()}'})
  • 相关阅读:
    剧集更新表
    Pyhton资源
    JAVA资源
    012 循环
    011 条件判断
    010 使用list和tuple
    009 字符串和编码
    007 Python基础
    python 内置函数
    python 获取当前运行的类名函数名inspect.stack()[1][3]
  • 原文地址:https://www.cnblogs.com/litzhiai/p/14714014.html
Copyright © 2011-2022 走看看