2017-07-21 183 views
0

我一直在用django書跟蹤探戈,並使用Bing的搜索API瀏覽了搜索章節。我試圖使用它,但似乎Bing不再提供這些服務。現在我想讓本地搜索功能可以在rango應用程序中搜索我的類別,但是我不知道如何在沒有Bing搜索API的情況下執行此操作。如果有的話,任何人都可以幫我解決問題。提前致謝。搜索功能django

+1

不要問這樣的問題。爲了幫助您「開始」,請查看http://haystacksearch.org它的Django應用程序的通用標準(與彈性搜索後端結合)或使用http://docs.wagtail.io/en/v1 .0b1/search/index.html w search搜索。真的很容易配置,但不是那麼強大 – hansTheFranz

回答

0

下面是一個例子在Django實現基本search實現Django的一個非常基本的搜索:

1)模板/ base.html文件

注:使用GET方法從form獲取搜索輸入。

<form name="exampleform" method="GET" action="{% url 'search' %}"> 

2)的views.py

def search(request): 
    try: 
     if 'q' in request.GET:# this will be GET now 
      querystring = request.GET.get('q')# passing in the query value to search view using the 'q' parameter 
      if len(querystring) == 0: 
       return redirect('index') 
      else: 
       pass 
    except: 
     pass 

    results = {} 

    if 'q' in request.GET: 
     querystring = request.GET.get('q') 
     if querystring is not None: 
      results = UserModel.objects.filter(
       Q(email__icontains=querystring) | 
       Q(first_name__icontains=querystring) | 
       Q(last_name__icontains=querystring)).order_by('pk')# filter returns a list 
      context = {'results': results} 
      template = 'templates/search_result.html' 
      return render(request, template, context) 
     else: 
      return redirect('index') 
      context = {} 
    else: 
     return render(request, "templates/search_result.html") 

2)urls.py

url(r'^search',views.search, name='search'), 

3)模板/ search_result.html

{% for each_object in results %} // results is list here so pick each element object using for loop 
    <a href="{% url 'user_detail' pk=each_object.pk %}"> 
    <!--Upon successful search object image with hyperlink appears --> 
    <img src="{{each_object.image.url}}" alt="No Image"></a> 
    <p>{{each_object.email}}</p> 
    <p>{{each_object.first_name}}</p> 
    <p>{{each_object.last_name}}</p>  
{% endfor %} 

有幾個項目要做搜索。這裏有一個非詳盡的列表:djangosearch, django-search (with a dash), django-sphinx.

+0

謝謝,這是我一直在尋找的東西。 @Emil George James – Allen

+0

您沒有爲results.html – Allen

+0

@Allen添加urls.py對不起,它應該是'search_result.html'而不是'result.html'。 –