• django分页


    def aliyun_dashboard(request, page=1):
        if request.method == 'GET':
            nodes = CmdbNode.objects.all().order_by('-node__creationTime')
    
        paginator = Paginator(nodes, 10)
        try:
            records = paginator.page(page)
        except PageNotAnInteger:
            # If page is not an integer, deliver first page.
            records = paginator.page(1)
        except EmptyPage:
            # If page is out of range (e.g. 9999), deliver last page of results.
            records = paginator.page(paginator.num_pages)
    
        index = records.number
        max_index = paginator.num_pages
        if max_index <= 10:
            page_range = range(1, max_index + 1)
        elif max_index - index >= 10:
            page_range = range(index, index + 10)
        else:
            start_index = index - (10 - (max_index - index)) + 1
            page_range = range(start_index, max_index + 1)
    
        if request.method == 'GET':
            return render(request, 'cmdb/dashboard.html',
                          {'form': AliyunDashboard(), 'records': records, 'page_range': page_range})
    

    前端展示

                <nav aria-label="Page navigation">
                  <ul class="pagination">
                    {% if records.has_previous %}
                      <li>
                        <a href="{% url 'aliyun_dashboard' records.previous_page_number %}" aria-label="Previous">
                          <span aria-hidden="true">«</span>
                        </a>
                      </li>
                    {% endif %}
    
                    {% if page_range|length > 1 %}
                      {% for pg in page_range %}
                        {% if records.number == pg %}
                          <li class="active"><a href="{% url 'aliyun_dashboard' pg %}">{{ pg }}</a></li>
                        {% else %}
                          <li><a href="{% url 'aliyun_dashboard' pg %}">{{ pg }}</a></li>
                        {% endif %}
                      {% endfor %}
                    {% endif %}
    
                    {% if records.has_next %}
                      <li>
                        <a href="{% url 'aliyun_dashboard' records.next_page_number %}" aria-label="Next">
                          <span aria-hidden="true">»</span>
                        </a>
                      </li>
                    {% endif %}
                  </ul>
                </nav>
    

      

  • 相关阅读:
    Flash代码执行原理与性能优化笔记
    服务器自建git
    列表删除
    mysql的隔离级别实践
    py2和py3的字符编码
    Django外键(ForeignKey)操作以及related_name的作用
    python多个装饰器嵌套
    git diff使用
    .gitignore 只包含几个文件
    三层菜单字典练习
  • 原文地址:https://www.cnblogs.com/txwsqk/p/7412653.html
Copyright © 2020-2023  润新知