0

に存在するものと同じように、文字列に基づいてレコードのリストをフィルタリングする検索機能をdjangoに実装しようとしていますdjango admin list filtering

ただし、ここではfrom the database、検索フォームから取得したクエリ文字列に基づいて結果をフィルター処理するつもりはありません。代わりに、filter from the list既に持っている必要があります。

ビュー.py

def filter_contacts(request):
    contacts = ['None <steve.one@gmail.com>', 'None <ronold@gmail.com>', 
               'None <jacksparrow@gmail.com>', 'None <dude@gmail.com>' ...... up to more than 1000]
    if request.GET:
        if request.GET.has_key('q'):
            contacts = **filter the contacts from the above list that contains query string "q" and create a new list**
        else:
            contacts = contacts
    return render_to_response('social_feeds/gmail_contacts.html', {'contacts':contacts})

search_form のようなもの

<form class="form-search" action="{% url 'contacts' %}" method="get">
      <div class="input-append">
        <input type="text" class="span2 search-query" name="q" value="" id="searchbar">
        <button type="submit" class="btn btn-primary" value="Search">Search</button>
      </div>
</form>

もちろん、リスト内のすべての文字列で文字列を検索query stringしてリストからフィルター処理できloopingます。新しいリストを作成した場合は、

しかし、1000 を超える文字列 (おそらく上記の電子メール) があると仮定すると、そのプロセスは高速very/ultimatelyになるはずfunctionality/process/methodです。query paramerter

でフォームを検索すると、含まれているsteveすべてのが新しいリストにフィルターされ、それが私が探しているものになりますstrings/emailssteve

検索機能を非常に高速に実装する方法を教えてください。

4

1 に答える 1