私のサイトでレストランを探すときにユーザーが検索したいと思うフィールドがいくつかあります。 (m2m)、neighborhoods
(m2m)およびevent_space
(m2m)である。Djangoのいくつかのフィールドを検索します。それらをチェーンする方法がわからない
これらはドロップダウンボックスとしてユーザーに表示されます。また、ユーザーが何でも入力できるテキストフィールドを提供し、レストランname
(CharField)とkeywords
(CharField)を検索することもできます。
私は、適用されたこれらのフィルタの1つの結果を表示するためのビューを作成できますが、それらのすべてではありません。ああ、それぞれのドロップダウンは明らかにnull /空のデフォルトを持つでしょう。
アイデア?ここから始めてください:
from django.db.models import Q
if request.GET.get('q'):
search_terms = request.GET.get('q')
restaurant_list = Restaurant.objects.filter(
Q(name__icontains=search_terms) |
Q(keywords__icontains=search_terms) |
).order_by('-user__date_joined')
しかし、それは1つのフィールドだけをカバーしています。すべてのドロップダウンはどうですか?
ああ(!)私はすべてのGETパラメータをコンパイルし、それらを分割してリストにダンプすることができますが、すべての値がシングルワードではないと思います。
私はHaystackにもオープンしていますが、わかりません。あなたはposteds値とQ(サンプルに適量の名前)のリストを準備することができますポストとフィールドモデルフォームで
「すべて」は「and」を意味しますか?料理のスタイルと近所とイベントスペース?それが "and"を意味するなら、それは自動的です。もしそれがORなら、あなたは何らかの仕事をしなければならない。どのような具体的なロジックを実装しようとしていますか? –
POSTメソッドに移行することをお勧めします。あなたはドロップダウンリストについて話しています。これは多くの文字かもしれません。 – danihp
私のロジックはCuisine style AND Neighborhood AND Event Spaceです。 – Flowpoke