django实现分页

1.html模版(部分)

{% block page-content %}
    <table class="table">
        <tr>
            <th>ID</th><th>QQ号</th><th>姓名</th><th>渠道</th><th>咨询课程</th>
            <th>课程类型</th><th>客户备注</th><th>状态</th><th>课程顾问</th><th>日期</th>
        </tr>
        {% for item in customer_list %}
            <tr>
            <td>{{ item.id }}</td>
            <td>{{ item.qq }}</td>
            <td>{{ item.name }}</td>
            <td>{{ item.source_type}}</td>
            <td>{{ item.course }}</td>
{#            显示字段的中文备注#}
            <td>{{ item.get_course_type_display }}</td>
{#            限制显示长度#}
            <td>{{ item.consult_memo|truncatechars_html:80 }}</td>
{#            小技巧,通过名称巧取颜色#}
            <td class="{{ item.status }}">{{ item.get_status_display }}</td>
            <td>{{ item.consultant }}</td>
            <td>{{ item.date }}</td>
            </tr>
        {% endfor %}

    </table>
{#    采用bootstrap导航按钮#}
    <nav aria-label="Page navigation">
        <ul class="pagination">
{#            判断是否有上一页#}
            {% if customer_list.has_previous %}
{#                有上一页则添加上一页连接#}
                <li><a href="?page={{ customer_list.previous_page_number }}" aria-label="Previous">
                    <span aria-hidden="true">&laquo;</span>
                </a></li>
            {% endif %}
{#        依次显示每一页,customer_list.paginator.page_range为可迭代range结果#}
            {% for i in customer_list.paginator.page_range %}
                {% if i == customer_list.number %}
                    <li class="active"><a href="?page={{ i }}">{{ i }}</a></li>
                {% else %}
                    <li class=""><a href="?page={{ i }}">{{ i }}</a></li>
                {% endif %}
            {% endfor %}
{#            同理判断是否有下一页#}
            {% if customer_list.has_next %}
                <li><a href="?page={{ customer_list.next_page_number }}" aria-label="Next">
                    <span aria-hidden="true">&raquo;</span>
                </a></li>
            {% endif %}
        </ul>
    </nav>
{% endblock %}

view.py

from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger

def customers(request):
    # 获取所有信息
    customer_list = models.Customer.objects.all()
    # 每页三条分页
    paginator = Paginator(customer_list, 3)
    page = request.GET.get('page')

    try:
        # 获取指定页内容
        contacts = paginator.page(page)
    except PageNotAnInteger:
        contacts = paginator.page(1)
    except EmptyPage:
        contacts = paginator.page(paginator.num_pages)

    return render(request, 'crm/customers.html', {'customer_list': contacts})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值