2012-05-09 27 views
5

Nếu nó không thể thì có bất kỳ lựa chọn thay thế khác (hoặc phân trang gốc của Django hoặc một gói thay thế) cho phép nhiều paginations trên mỗi trang?Django-pagination có thể thực hiện nhiều lần truy cập trên mỗi trang không?

Tôi muốn hiển thị danh sách khoảng 5 đối tượng với mỗi đối tượng có ngữ cảnh phân trang riêng.

Để thuận tiện, dưới đây là documentation for django-pagination.

+0

Tôi đang tìm kiếm điều tương tự. Bạn có tìm được gì không? – andyzinsser

Trả lời

5

Chắc chắn, điều đó là có thể. Tôi không thể nói cho gói django-pagination, nhưng nó chắc chắn là có thể sử dụng mặc định của lớp Django Paginator. Bạn có thể tạo bao nhiêu người trong số họ như bạn muốn bên trong chế độ xem của mình. Chỉ cần chọn các tham số GET khác nhau để chỉ định trang cho mỗi người trong số họ và bạn tốt để đi.

4

Tôi biết bài đăng này cũ, nhưng bài đăng vẫn có liên quan. Sau đây sẽ làm việc cho Django 1.9.

Đây là cách để làm điều đó,

views.py

def myview(): 
    Model_one = Model.objects.all() 
    paginator = Paginator(Model_one, 6) 
    page = request.GET.get('page1') 
    try: 
     Model_one = paginator.page(page) 
    except PageNotAnInteger: 
     Model_one = paginator.page(1) 
    except EmptyPage: 
     Model_one = paginator.page(paginator.num_pages) 

    Model_two = Model_other.objects.all() 
    paginator = Paginator(Model_two, 6) 
    page = request.GET.get('page2') 
    try: 
     Model_two = paginator.page(page) 
    except PageNotAnInteger: 
     Model_two = paginator.page(1) 
    except EmptyPage: 
     Model_two = paginator.page(paginator.num_pages) 

    context = {'Model_one': Model_one, 'Model_two': Model_two} 
    return render(request, 'template.html', context) 

Điều quan trọng trên là 'page1' và 'page2'.

Trong mẫu,

{% if model_one %} 
     <div class="col-md-12 well"> 
     {% for item in model_one %} 
     ..... iterates through model_one..... 
     {% endfor %} 
     <span class="step-links pagination"> 
      {% if model_one.has_previous %} 
       <a href="?page1={{ model_one.previous_page_number }}"> previous </a> 
      {% endif %} 
      <span class="current"> 
       Page {{ model_one.number }} of {{ model_one.paginator.num_pages }} 
      </span> 
      {% if model_one.has_next %} 
       <a href="?page1={{ model_one.next_page_number }}"> next </a> 
      {% endif %} 
     </span> 
     </div> 
     {% endif %} 
     {% if model_two %} 
     <div class="col-md-12 well"> 
     {% for item in model_two %} 
     ..... iterates through model_two..... 
     {% endfor %} 
     <span class="step-links pagination"> 
      {% if model_two.has_previous %} 
       <a href="?page2={{ model_two.previous_page_number }}"> previous </a> 
      {% endif %} 
      <span class="current"> 
       Page {{ model_two.number }} of {{ model_two.paginator.num_pages }} 
      </span> 
      {% if model_two.has_next %} 
       <a href="?page2={{ model_two.next_page_number }}"> next </a> 
      {% endif %} 
     </span> 
     </div> 
     {% endif %} 

Một lần nữa sử dụng 'page1' và 'page2' để phân biệt các pagination cho mỗi mô hình.

+1

Tốt nhất, Cảm ơn – Sakeer

+1

Điều này cũng hoạt động ở mức 1.4 – af3ld

Các vấn đề liên quan