title、body、short_description の 2 つのモデル列を検索する検索バーがあります。私はMySQLデータベースを使用しています。現在、私は Q ルックアップを使用していますが、「改善」したい検索制限がいくつかあります。
そのうちの 1 つは、Q ルックアップがフィールド内とまったく同じフレーズの結果のみに基づいて結果のみを見つけることです。たとえば、タイトルがあり、結果を取得するにはorまたはとwhy python is so amazing?
書く必要があります。私が取得したいのは、検索バーを次のように拡張することです。why
python
python is
ユーザーが検索バーに質問を挿入するpython language
と、検索ルックアップによって各単語が分割され、python
またはを含むすべてのオブジェクトが返されますlanguage
。最終的に、結果は、ユーザーが入力したかどうかwhy python is so amazing?
に関係なく、を含むオブジェクトを返します。python language
amazing python
現在のコードを以下に掲載しています。
ビュー.py
def search_items(request):
query = request.GET.get('q')
article_list= Article.objects.filter(title__icontains=query)
qa_list = QA.objects.filter(title__icontains=query)
if query is not None:
lookups = Q(title__icontains=query) | Q(short_description__icontains=query) | Q(body__icontains=query)
article_list= Article.objects.filter(lookups, status=1).distinct()
qa_list = QA.objects.filter(lookups, status=1).distinct()
context = {
'query_name': query,
'article_list': article_list,
'qa_list': qa_list,
}
return render(request, 'search/search_items.html', context)
この解決策とこれを確認しましpython language
たが、タイトルのオブジェクトを見つけようとすると結果が得られないため、結果は満足のいくものではありませんwhy python is so amazing
。
質問
ユーザーが入力フィールドに入力した単語に基づいて、すべてのオブジェクトのリストを含むオブジェクトを取得する結果を達成する方法についてアドバイスをいただければ幸いです。