点击下一个按钮后,Django分页显示没有数据



我在Django应用程序中有一个分页。当我加载页面时,第一页上的数据显示很好,但当我点击分页器的第二个按钮时,下一页上没有显示数据。以下是我的代码:

viwes.py

def get_queryset(self, **kwargs):
# get query params
query = self.request.GET.get("q", "")
page = self.request.GET.get("page", "1")
size = self.request.GET.get("rows", "15")
cname = self.request.GET.getlist("cname", [])
tags = self.request.GET.getlist("tag", [])
filter_param = self.request.GET.getlist("filter_param", [])
# get size and set to default 15 if its not digit
if size.isdigit():
size = int(size)
else:
size = 15
# get response from elastic search
response = self.get_archives(query,  page, size, cname, tags, filter_param)
response = list(iter(response))
for res in response:
if 'statement' in res:
ref = self.get_reference(res['statement'], response)
res['references'] = ref
p = Paginator(response, 2)
pages = p.get_page(page)  
return pages

响应列表被传递到前端,响应在发送到第一页时有数据,但当点击第二个按钮后再次发送请求时,响应列表被空传递到前端。

claims.html

<div class="row" style="padding-top: 30px;">
{%if archives.paginator.count %}
<div class="col" style="float: right;">
<nav aria-label="Page navigation">
<ul class="pagination">
{% if archives.has_previous %}
<li class="page-item">
<a class="page-link" href="?page=1&q={{query}}&size={{size}}&cname={{cname}}"
aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
<span class="sr-only">begin</span>
</a>
</li> {% endif %}
{% for n in archives.paginator.page_range %}
{% if archives.number == n %}
<li class="page-item active">
<span class="page-link">{{ n }}<span class="sr-only">(current)</span></span>
</li>
{% elif n > archives.number|add:'-3' and n < archives.number|add:'3' %}
<li class="page-item"><a class="page-link"
href="?page={{ n }}&q={{query}}&size={{size}}&cname={{cname}}">{{ n }}</a></li>
{% endif %}
{% endfor %}
{% if archives.has_next %}
<li class="page-item">
<a class="page-link"
href="?page={{ archives.paginator.num_pages }}&q={{query}}&size={{size}}&cname={{cname}}"
aria-label="Next">
<span aria-hidden="true">&raquo;</span>
<span class="sr-only">end</span>
</a>
</li>
{% endif %} </ul>
</nav>
</div>
{%else%}
<h6 class="light-grey">No Results Found</h6>
{%endif%}
<div class="col">
<div class="float-right">
Showing results {{ archives.start_index }} to {{ archives.end_index }} of
{{ archives.paginator.count }}
</div>
</div>
</div>

{{ request.get_full_path }}附加到下一个和上一个按钮的开头

?page=1&q={{query}}&size={{size}}&cname={{cname}}

{{ request.get_full_path }}&page=1&q={{query}}&size={{size}}&cname={{cname}}

为我工作。

最新更新