django在分页查询的时候,翻页时,v层要传递查询参数,相应的html翻页连接也要带上查询参数
直接上代码
view:
@login_required
def search_name(request):
username = request.session.get('user')
search_name = request.GET.get('name')
if search_name == None:
search_name = request.GET.get('name')
event_list = Event.objects.filter(name__contains=search_name)
paginator = Paginator(event_list, 2)
page = request.GET.get('page')
try:
contacts = paginator.page(page)
except PageNotAnInteger:
# 如果page不是整数,取第一页面数据
contacts = paginator.page(1)
except EmptyPage:
# 如果page不在范围内,则返回最后一页数据
contacts = paginator.page(paginator.num_pages)
return render(request,'event_manage.html',{'user':username,'events':contacts,'name':search_name})
html:
<!--列表分页器-->
<div class="pagination">
<span class="step-links">
{% if events.has_previous %}
<a href="?page={{ events.previous_page_number }}&&name={{ name }}">previous</a>
{% endif %}
<span class="current">
Page {{ events.number }} of {{ events.paginator.num_pages }}
</span>
{% if events.has_next %}
<a href="?page={{ events.next_page_number }}&name={{ name }}">next</a>
{% endif %}
</span>
</div>
{% include 'include/pager.html' %}