我在相同的视图中有搜索代码和分页代码,因此每当我查看分页的第二页时,我都会获得标准搜索页面... 在django教程中,每次调用视图时都会生成列表,在我的情况下,因为搜索表单总是与分页代码一起加载,在请求第二个分页时列表被删除... 我该怎么办?
这是简化的代码,因此您可以获得这个想法:
def main_page(request):
anuncios = []
#This is the search
if request.method == 'POST':
anuncios = Anuncio.objects.all().order_by('votos').reverse()[0:20]
# Pagination
paginator = Paginator(anuncios, 2)
page = request.GET.get('page')
try:
p_anuncios = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
p_anuncios = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
p_anuncios = paginator.page(paginator.num_pages)
return render_to_response('main_page.html', RequestContext(request,
{'form':form,
'anuncios': p_anuncios,
'vazio':vazio
})
)
由于
答案 0 :(得分:0)
如果您的表单中包含一些影响分页器列表的字段,您可以执行类似这样的操作
<input type="hidden" name="current_page" value="{{ anuncios.number }}" />
<input type="submit" name="_next" value="next" />
在python中
page = request.GET.get('current_page','')
if page and page.isdigit() and '_next' in request.GET:
try:
p_anuncios = paginator.page(int(page) + 1)
...
然后你可以添加一个隐藏的输入字段名称=“page”与当前页面值和vor导航下一个和