に存在するものと同じように、文字列に基づいてレコードのリストをフィルタリングする検索機能を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/emails
steve
検索機能を非常に高速に実装する方法を教えてください。