我正在使用ListView来显示搜索结果,并使用表单让用户输入搜索值,这就是问题:当我得到一些搜索结果时,比方说50项,我设置了item_per_page 30,所以我有两页,但现在当我点击下一页链接时,它会忘记前一个搜索请求,并向我显示第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 %}
答案 0 :(得分: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 %}