私は Django で、ユーザーがお気に入りの映画を伝えることができる Web アプリに取り組んでいます。入力のために、オートコンプリートが有効になっているテキストボックスをユーザーに提供したいと思います。
- これまでに作成されたすべてのムービーのリストは非常に大きい (18 MB) ため、リモート ソースを使用してオートコンプリートを有効にする必要があります。
- これに加えて、データベースを使用できないという制約があります。(私のアプリはherokuでホストされており、そのようなデータをデータベースに保存するには多くの費用がかかるため)
現在、すべての映画のリストを .py ファイルに保存しており、それを views.py にインポートしています。オートコンプリートからの ajax 要求を処理するビューは、このリスト内の各映画を反復処理して、クエリ用語に基づいてフィルター処理し、フィルター処理されたリストを返します。
-movies.py
all_movies = [list of all movies' titles] # > 1M string elements
-views.py (ユーザーが Web アプリのテキスト ボックスの入力を変更するたびに、handle_autocomplete() が呼び出されます)
import movies
def handle_autocomplete(request):
data = request.GET['term']
my_list = [title for title in movies.all_movies if data in title]
return HttpResponse(simplejson.dumps(my_list))
このアプローチの欠点は何ですか?また、どのように改善できますか? remote-source autocomplete を処理するライブラリ/ django アプリはありますか?