开发者社区> 问答> 正文

Django前端搜索

一码平川MACHEL 2019-01-23 16:47:08 726

目前使用Django 2.1,PostgreSQL 11,并在Heroku上托管数据库。

我想在我设置的设备视图上实现用户搜索。

当前页面布局 此页面将列出数据库中的人员,并提供有关它们的详细信息的链接。我希望用户能够搜索特定的人并相应地填充列表。

Django文档提供了实现此目的的一些步骤,但对于行动计划并不完全清楚。

前端开发 关系型数据库 数据库 PostgreSQL Python
分享到
取消 提交回答
全部回答(2)
  • xwaby
    2019-07-17 23:26:44

    为用户显示标题中含有被搜索关键词的全部文章。整个搜索的过程如下:
    1、用户在搜素框中输入搜索关键词,假设为 “django”,然后用户点击了搜索按钮提交其输入的结果到服务器
    2、服务器接收到用户输入的搜索关键词 “django” 后去数据库查找文章标题中含有该关键词的全部文章
    3、服务器将查询结果返回给用户

    0 0
  • 一码平川MACHEL
    2019-07-17 23:26:44

    可以使用此示例在视图中实现自己的搜索引擎

    def search(request):

    keywords=''
    
    if request.method=='POST': # form was submitted
    
        keywords = request.POST.get("keywords", "") # <input type="text" name="keywords">
        all_queries = None
        search_fields = ('title','content','resume') # change accordingly
        for keyword in keywords.split(' '): # keywords are splitted into words (eg: john science library)
            keyword_query = None
            for field in search_fields:
                each_query = Q(**{field + '__icontains': keyword})
                if not keyword_query:
                    keyword_query = each_query
                else:
                    keyword_query = keyword_query | each_query
                    if not all_queries:
                        all_queries = keyword_query
                    else:
                        all_queries = all_queries & keyword_query
    
        articles = Article.objects.filter(all_queries).distinct()
        context = {'articles':articles}
        return render(request, 'search.html', context)
    
    else: # no data submitted
    
        context = {}
        return render(request, 'index.html', context) 

    您只需要更改以下内容:

    1 - html中使用的name属性


    keywords = request.POST.get("keywords", "")
    2 - 模型类的名称

    3 - 该模型的搜索字段

    0 0
添加回答
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程