Django之ListView

from django.views.generic.list import ListView
from common.models.AdvPosition import AdvPosition

class AdvPositionIndexView(ListView):
    model = AdvPosition # 指定模型
    context_object_name = 'grid' # 默认object_list
    paginate_by = 2 # 每页显示数量 默认Paginator实例 page_obj
    ordering = ['-id'] # 默认排序
    template_name = 'adv-position/index.html'

如果需要显示全部数据,可把paginate_by 改为False

paginate_by = False

view

<div class="card">
  <div class="card-header ty-main-title">
    <h3 class="card-title">
      广告位
    </h3>
    <a class="btn btn-success btn-btn1" href="/backend/adv-position/create">添加</a>
  </div>
  <div class="card-body">
    <div class="grid-view">
      {% if grid %}
      <table id="example1" class="table table-bordered table-striped">
        <thead>
        <tr>
          <th>&nbsp;</th>
          <th>编号</th>
          <th>名称</th>
          <th>操作</th>
        </tr>
        </thead>
        <tbody>
        {% for data in grid %}
        <tr>
          <td><input type="checkbox" name="" value="" /></td>
          <td>{{data.id}}</td>
          <td>{{data.name}}</td>
          <td>
            <a href="/backend/adv-position/update/{{data.id}}">编辑</a>
            <a href="/backend/adv-position/delete/{{data.id}}" data-method="POST" data-confirm="确定删除么?">删除</a>
          </td>
        </tr>
        {% endfor %}
        </tbody>
      </table>
      {% endif %}
    </div>
    {% include '../components/paginate.html' %}
  </div>
</div>

上面的变量grid也可以用默认的object_list

{% for data in object_list %}

 

分页

{%if is_paginated %}
<div class="row">
    <div class="col-sm-12 col-md-5">
        <div class="dataTables_info" id="example1_info" role="status" aria-live="polite">共 {{ page_obj.paginator.num_pages }} 页 {{ page_obj.paginator.count }} 条</div>
    </div>
    <div class="col-sm-12 col-md-7">
        <div class="dataTables_paginate paging_simple_numbers">
        <ul class="pagination">
            {% if page_obj.has_previous %}
            <li class="paginate_button page-item">
            <a href="?page=1" class="page-link">首页</a>
            </li>
            <li class="paginate_button page-item">
            <a href="?page={{ page_obj.previous_page_number }}" class="page-link">上一页</a>
            </li>
            {% endif %}
            {% if page_obj.paginator.page_range %}
            {% for page in page_obj.paginator.page_range %}
            
            {%if page_obj.number == page%}
            <li class="paginate_button page-item active"><span class="page-link">{{page}}</span></li>
            {%else%}
            <li class="paginate_button page-item"><a href="?page={{page}}" class="page-link">{{page}}</a></li>
            {% endif %}
            
            {% endfor %}
            {% endif %}
            {% if page_obj.has_next %}
            <li class="paginate_button page-item">
            <a href="?page={{ page_obj.next_page_number }}" class="page-link">下一页</a>
            </li>
            <li class="paginate_button page-item">
            <a href="?page={{ page_obj.paginator.num_pages }}" class="page-link">尾页</a>
            </li>
            {% endif %}
        </ul>
        </div>
    </div>
</div>
{% endif %}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值