0

title、body、short_description の 2 つのモデル列を検索する検索バーがあります。私はMySQLデータベースを使用しています。現在、私は Q ルックアップを使用していますが、「改善」したい検索制限がいくつかあります。

そのうちの 1 つは、Q ルックアップがフィールド内とまったく同じフレーズの結果のみに基づいて結果のみを見つけることです。たとえば、タイトルがあり、結果を取得するにはorまたはとwhy python is so amazing?書く必要があります。私が取得したいのは、検索バーを次のように拡張することです。whypythonpython is

ユーザーが検索バーに質問を挿入するpython languageと、検索ルックアップによって各単語が分割され、pythonまたはを含むすべてのオブジェクトが返されますlanguage。最終的に、結果は、ユーザーが入力したかどうかwhy python is so amazing?に関係なく、を含むオブジェクトを返します。python languageamazing 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

質問

ユーザーが入力フィールドに入力した単語に基づいて、すべてのオブジェクトのリストを含むオブジェクトを取得する結果を達成する方法についてアドバイスをいただければ幸いです。

4

1 に答える 1