【发布时间】:2011-05-02 00:54:57
【问题描述】:
如标题中所述,当我单击转到第一个页面之外的页面时,我的分页器不显示任何内容。
首先,让我大致描述一下我的页面:
它的功能是从用户那里获取一个请求输入,指定他想要查看一堆“通话记录”以及其他过滤器的时间间隔(这很重要)。所以基本上有一个请求的开始和结束日期,我用它来过滤我的对象。
“page2”的链接类似于:“localhost:8000/?page=2”并重定向到我现有的页面,但没有任何数据。现在很明显,下一页的链接应该包含其他参数,例如start_date=xxxx-xx-xx,否则它不起作用。
这是我的 view.py 的一部分,为了简短起见,我删除了很多行,代码运行良好:
if request.GET:
filter_form = ReportFilterForm(request.GET)
if filter_form.is_valid():
start = filter_form.cleaned_data["start_date"]
end = filter_form.cleaned_data["end_date"]
#a bunch of omitted lines that use the form to filter
paginator = Paginator(queryset, 100)
try:
page = int(request.GET.get('page', '1'))
except ValueError:
page = 1
try:
call_logs = paginator.page(page)
except (EmptyPage, InvalidPage):
call_logs = paginator.page(paginator.num_pages)
else:
filter_form = ReportFilterForm()
return render_to_response('xxxx.html',
{'queryset': queryset,
'filter_form': filter_form,
'call_logs': call_logs,
})
我的模板 xxxx.html,只是分页器部分,非常标准,取自文档:
{% if call_logs.paginator.num_pages %}
<div class="pagination">
<span class="step-links">
{% if call_logs.has_previous %}
<a href="**{{ SOME_MAGIC_TEMPLATE_VARIABLE_THAT_GETS_CURRENT_ABSOLUTE_URL}}**&?page={{ call_logs.previous_page_number }}"><<</a>
{% endif %}
<span class="current">
Page {{ call_logs.number }} of {{ call_logs.paginator.num_pages }}
</span>
{% if call_logs.has_next %}
<a href=" **{{ SOME_MAGIC_TEMPLATE_VARIABLE_THAT_GETS_CURRENT_ABSOLUTE_URL}}**&page={{ call_logs.next_page_number }}">>></a>
{% endif %}
</span>
</div>
{% endif %}
我的问题是如何使用 django 模板而不是 javascript 获取当前窗口 URL? 谢谢。
【问题讨论】:
标签: python django pagination