python django listview form使用post和get后,不能分页的解决办法
一、背景
python django listview form使用post和get后,不能分页的解决办法。将post和get注释后,可以分页,判断是由于get和post,将分页进行了屏蔽。
上篇记录链接如下:
python django listview form 组合使用记录
二、解决方案一
使用super(),但没有成功
三、解决方案二
在get中增加分页功能,成功。
注意:返回值中,要将两个字典合并{**locals(),**self.extra_context}
extra_context = {
'pagination_url':'technology:listview',
'namne':'a',
'is_paginated':True
}
def get_queryset(self):
return models.T.objects.all()
def get(self,request, *args, **kwargs):
form = self.form_class(initial=self.initial)
objs_all=models.T.objects.all()
paginator = Paginator(objs_all,self.paginate_by)
# 页码,如没有取到,则取1,返回值是数字
page = request.GET.get('page',1)
# 获取页码的对象,里面包含了多个属性
page_obj = paginator.get_page(page)
# 页面属性中的所有记录,用于更新页面
object_list = page_obj.object_list
return render(request,self.template_name,{**locals(),**self.extra_context})