Django原生搜索功能的实现

  • 前端页面展示搜索框
            <div style="float:right;">
                <form class="form-inline" method="get">
                    <div class="form-group">
                        <input name="keyword" type="text" class="form-control" placeholder="请输入关键字"
                               value="{{ keyword }}">
                    </div>
                    <button type="submit" class="btn btn-default">
                        <span class="glyphicon glyphicon-search"></span>
                    </button>
                </form>
            </div>
  • 后端视图逻辑代码
  # 这里是获取搜索form表单提交的搜索关键字
    keyword = request.GET.get('keyword','').strip()
    # 使用Q对象进行或查询
    con = Q()
    if keyword:
        con.connector = 'OR'
        con.children.append(('username__contains', keyword)) # 添加按xxx搜索条件
        con.children.append(('mobile__contains', keyword))
        con.children.append(('level__title__contains', keyword))
    # 查询数据库,返回的就是符合搜索条件的数据
    customer_queryset = models.Customer.objects.filter(con).filter(active=1).select_related('level')
posted @ 2023-08-11 15:22  等日落  阅读(82)  评论(0编辑  收藏  举报