0

サイドメニューの上部に検索ボックスがあります。この検索バーは、すべてのビュー (タスク、リスト、および情報) を検索します。結果はこれら 3 つのカテゴリにわたって表示されますが、ビューを読みやすくするために、リストと情報はデフォルトで折りたたまれています。

代わりに、ユーザーが検索に使用したサイド メニューを特定し、結果を返すときに他の 2 つのカテゴリを折りたたみます。

そのため、ユーザーがタスクを見ている場合、検索結果にはタスクがリストされますが、返されるリストと情報の結果は折りたたまれていました。ユーザーがリストで検索ボックスを使用した場合、結果にはリスト項目がリストされますが、タスクと情報は折りたたまれます。

同じ関数を使用して、すべての検索結果を処理します。

def search(request):

    query_string = ''
    search_results = SortedDict([])

    if ('q' in request.GET) and request.GET['q'].strip():
        query_string = request.GET['q']

        entry_query = get_query(query_string, ['name', 'notes',])

getquery() はデータベースで query_string を検索します

この関数はテンプレートから呼び出されます。

<form method="get" action="{% url search %}" style="display:inline;" >
    <input name="q" class="span9" value="{{ request.GET.q }}" id="appendedInputButton" size="16" type="text">
    <button class="btn" type="submit">
        <i class="icon-search" title="Search"></i>
    </button>
</form>

検索機能でテンプレート情報を利用できるように、このフォームの送信とともに現在の URL またはその他のテンプレート変数を渡すにはどうすればよいですか? これにより、折りたたむカテゴリをテンプレートに伝える情報を検索結果に渡すことができます。

4

1 に答える 1

0

最も簡単で確実な方法は、個別のボタンを使用することです。それぞれに名前を付け、特定のビューがアクティブなときに適切なビューのみが表示される場合、POST内のボタンの名前の存在から、どのビューがアクティブであったかを知ることができます。

他の唯一の方法は、非表示のフィールドを作成し、ビューが変更されたときにJavaScriptを使用してフィールドの値を適切に設定することです。

于 2012-08-29T18:22:16.017 に答える