【发布时间】:2015-08-13 12:57:12
【问题描述】:
我使用文档中的代码对数据进行分页:
try:
data = paginator.page(request.GET.get('page'))
except PageNotAnInteger:
page = 1
data = paginator.page(1)
except EmptyPage:
data = paginator.page(paginator.num_pages)
还有一个页面:
<div class="pagination">
<span class="step-links">
{% if data.has_previous %}
<a href="?page={{ data.previous_page_number }}">previous</a>
{% endif %}
<span class="current">
<b>Page</b> {{ data.number }} of {{ data.paginator.num_pages }}
</span>
{% if data.has_next %}
<a href="?page={{ data.next_page_number }}">next</a>
{% endif %}
</span>
</div>
但是这里有一个bug:当url包含查询字符串并且点击Pager时,原始查询字符串会丢失。例如:
example.com?var1=33&var2=44
然后当点击“page2”时,url变成了
example.com?page=2 # var1=33&var2=44 is lost
代替:
example.com?var1=33&var2=44&page=2
我既没有找到标准,也没有找到简单的方法来修复它。我该怎么做?
更新:
当然,参数的名称、它们的值以及它们是否存在都是未知的。
【问题讨论】:
-
我使用了here 提到的两个简单解决方案之一。此外,重要的是要注意 javascript 解决方案(如一些 SO 帖子中所建议的)可能在这里工作,但可能会影响 SEO,因为在这种情况下页面链接不会是真正的 URL