首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django代码分享:可以重用的Bootstrap 4分页模板

我们之前已经介绍了

如何使用Django 2.0的自带Paginator类可以实现分页功能

。但有人跟我抱怨该案例生成的分页效果太丑(如下图所示), 希望我能帮助美化一下。今天我就来分享下一个可以重用的Bootstrap 4分页模板吧,你可以直接用到你的Django 分页项目里,迅速美化你的页面。

改进后的分页效果如下所示, 是不是好多了?

Django Bootstrap 4分页模板代码

Django Boostrap 4分页模板

{#注释: page_obj不要改。for里的article可以改成自己对象#}

{% if page_obj %}

{% for article in page_obj %}

{{ article.title }}{{ article.pub_date | date:"Y-m-j" }}

{% endfor %}

{#注释:下面代码一点也不要动#}

{% if is_paginated %}

{% if page_obj.has_previous %}

Previous

{% else %}

class="page-link">Previous

{% endif %}

{% for i in paginator.page_range %}

{% if page_obj.number == i %}

class="page-link">{{ i }}class="sr-only">(current)

{% else %}

{{ i }}

{% endif %}

{% endfor %}

{% if page_obj.has_next %}

Next

{% else %}

class="page-link">Next

{% endif %}

{% endif %}

{% else %}

{#注释:这里可以换成自己的句子#}

No article yet

{% endif %}

视图views.py

之所以说这个模板是可以重用的,是因为其同时支持基于函数方法的视图和Django自带的基于类的视图(CBV)。因为新闻博客为例,下面两种视图都是可以的。你可以稍微改下视图文件views.py即可实现Bootstrap 4分页效果。

fromdjango.views.genericimportListView

from.modelsimportArticle

fromdjango.shortcutsimportrender

fromdjango.core.paginatorimportPaginator

# Create your views here.

classArticleListView(ListView):

queryset = Article.objects.filter(status='p').order_by('-pub_date')

paginate_by =3

defarticle_list(request):

articles = Article.objects.filter(status='p').order_by('-pub_date')

paginator = Paginator(articles,3)

page = request.GET.get('page')

page_obj = paginator.get_page(page)

returnrender(request,'blog/article_list.html',

{'page_obj': page_obj,'paginator': paginator,'is_paginated':True})

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180604G0BPQ600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券