1. 程式人生 > >Django Paginator 分頁

Django Paginator 分頁

django 分頁 Paginator

1,視圖配置views

from django.core.paginator import Paginator


def HostInfo(request,page_id=1):

    host_info = models.HostInfo.objects.all().order_by('id')

    #創建分頁對象,13為每頁數據條目
    p = Paginator(host_info, 13) 
 
    #實例化當前頁
    current_page = p.page(page_id)

    host_list = []
    for host in current_page:
        host_group = models.HostGroup.objects.filter(id=host.host_group_id)[0].group_name
        idc = models.IDC.objects.filter(id=host.idc_id)[0].idc_name

        host_list.append({'hostname':host.hostname,'IP':host.IP,'host_group':host_group,
                          'device_type':host.device_type,'status':host.status,'idc':idc,'msg':host.msg})
    return render(request, "cmdb_host.html", locals())


2,路由配置

django.conf.urls urlinclude
app_cmdb views


urlpatterns = [url(views.HostInfo)]

3,模板

margin-top:5px;background-color: #f5f5f5;主機名IP地址所屬組描述設備類型設備狀態機房操作{% for host in host_list %}
          {{ host.hostname }}{{ host.IP }}{{ host.host_group }}{{ host.msg }}{{ host.device_type }}{{ host.status }}{{ host.idc }}padding-left:5px;詳情編輯刪除{% endfor %}


        margin-top:-30px;padding-right:9%{% if current_page.has_previous %}
            
            上一頁{% else %}
            上一頁{% endif %}
    
            <!--循環分頁對象索引列表-->
           {% for index in p.page_range %}
    
    
               {% if page_id == index %}
                background-color: red{{ index }}{% else %}
                {{ index }}{% endif %}
    
           {% endfor %}

        <!--判斷當前頁是否有下一頁-->
       {% if current_page.has_next%}

        下一頁{% else %}
            下一頁{% endif %}


Django Paginator 分頁