【发布时间】:2012-03-31 07:32:30
【问题描述】:
我有一个用户访问的 URL:
mysite.com/page/?q=query
在该页面上,我想要一个相对超链接在页面之间移动,即:
<a href="?page=2">Next Page</a>
但是,如果我这样做,它只会替换整个先前的查询。有没有办法让它只添加到查询参数中?
【问题讨论】:
-
您是否正在显示项目列表并希望对项目进行分页?
我有一个用户访问的 URL:
mysite.com/page/?q=query
在该页面上,我想要一个相对超链接在页面之间移动,即:
<a href="?page=2">Next Page</a>
但是,如果我这样做,它只会替换整个先前的查询。有没有办法让它只添加到查询参数中?
【问题讨论】:
我会使用 POST 变量而不是您当前的 GET 查询字符串。
【讨论】:
获取完整的查询字符串:
query_string = "?%s" %request.META['QUERY_STRING']
只获取q的值:
if "q" in request.GET:
q = request.GET.get('q')
使用这些变量,您可以构建新链接。
【讨论】:
您可以使用request.get_full_path
例如
{{ request.get_full_path }}&page={{ next_page }} (mysite.com/page/?q=query&page=2)
但是,如果您在下一页,则仅附加到 URL 会出现问题,页面参数将超过 1 个。
例如
mysite.com/page/?q=query&page=2&page=3
最好的解决方案是使用request.path
{{ request.path }}?q=query&page={{ next_page }}
【讨论】: