首先说明一下情况,我使用的类视图函数直接调用的分页器
然后前端代码是这样的<div class="well text-center cut-page">
<ul class="list-inline">
{% if page_obj.has_previous %}
<a href="?page={{ page_obj.previous_page_number }}">上一页</a>
{% else %}
<li class="no-page" title="当前页已经是首页">上一页</li>
{% endif %}
<li>第 {{ page_obj.number }} / {{ paginator.num_pages }} 页</li>
{% if page_obj.has_next %}
<a href="?page={{ page_obj.next_page_number }}">下一页</a>
{% else %}
<li class="no-page" title="当前页已经是末页">下一页</li>
{% endif %}
</ul>
</div>
其实这个模板本身是没有问题的,我一直都是用这个,很简单的分页
但是,之前的请求URL都是没有带?a=1 这种类型的参数的,所以我可以在分页的时候使用<a href="?page={{ page_obj.next_page_number }}">
这种方式,就相当于传递了一个?page=2
问题来了,如果本身我的页面地址是http://www.stopfollow.com/,那分页没问题,会形成http://www.stopfollow.com/?page=2 这种格式(目前网站也正是这样)
但是现在我有一个连接是这样的http://www.stopfollow.com/search?q=爬虫,这是搜索页面,也就是本身是传递了一个q参数的,这里已经有了一个?,那我再传递一个?page就有问题,会出现http://www.stopfollow.com/search?q=爬虫?page=2这种错误URL
正确应该是http://www.stopfollow.com/search?q=爬虫&page=2
我想问的就是,在<a href="?page={{ page_obj.next_page_number }}">下一页</a>这个地方怎么避免?page=这种半硬性编码? |