实现这样的页码导航功能
在视图函数里导入模块以及模型
from django.views.generic import ListView
from front.models import Article
class ArticleListView(ListView):
# 指定模板
model = Article
# 模板
template_name = 'article_list1.html'
# 渲染到模板上的对象
context_object_name = 'articles'
#每一页展示多少条数据
paginate_by = 10
#排序方式,以创建时间排序
ordering = 'create_time'
# url参数,用户传递第几页
page_kwarg = 'page'
定义函数,获取上下文数据,以及Pageinator、Page对象,注意要返回
def get_context_data(self, **kwargs):
context = super(ArticleListView, self).get_context_data(**kwargs)
#获取Pageinator和Page对象
paginator = context.get('paginator')
page_obj = context.get('page_obj')
# print(paginator,page_obj)
paginaton_date = self.get_pagination_date(paginator,page_obj)
context.update(paginaton_date)
return context
自定义页码规则,让上部分使用,
# 自定义方法
def get_pagination_date(self,paginator,page_obj,aroud_count=2):
# 当前页码,以这个为参照
current_page