4

ListView を使用して検索結果を表示し、フォームを使用してユーザーが検索値を入力できるようにしています。ここに問題があります。たとえば、50 アイテムの検索結果を取得し、item_per_page を 30 に設定すると、2 つのページが得られます。 、しかし、次のページのリンクをクリックすると、以前の検索要求が忘れられ、ページ 2 のすべてのアイテムが表示されます。これを修正するにはどうすればよいですか? 私のコードは以下の通りです:

私のフォームフィールドは次のようなものです:

<form method="get" action="{% url 'query_student' %}">
      #the form fields
</form>       

私のページネーションテンプレート:

{% if is_paginated %}
        <div class="pages">
                {% if page_obj.has_previous %}
                        <a href="/student/querystudent?page={{ page_obj.previous_page_number }}">previous</a>
                {% endif %}
                <span class="btnon">
                        page {{ page_obj.number }}  total {{ page_obj.paginator.num_pages }} 
                </span>
                {% if page_obj.has_next %}
                        <a href="/student/querystudent?page={{ page_obj.next_page_number }}">>next</a>
                {% endif %}
        </div>
{% endif %}
4

1 に答える 1

0

すべてのフォームデータにクエリ文字列がありません

最も簡単な解決策は を使用することdjango-url-toolsです。次に、前/次のページへのリンクに次を追加します。

{% load urls %}

...

{% add_params request.get_full_path page=page_obj.previous_page_number %}

...

{% add_params request.get_full_path page=page_obj.next_page_number %}
于 2016-06-11T00:52:13.720 に答える