문제

나는이 페이지 매김을 위해이 코드를 사용하고 있으며, 사용자의 선택이 사이트 전체에서 지속되기를 바랍니다 (지금까지 해결되었습니다) ... 지금 유일한 문제는 세션 변수가 세션까지 영구적이라는 것입니다. 브라우저를 닫아 지워집니다. 또한 Digg 스타일의 Django Paginator와 같이 인접한 페이지를 표시 할 수있는 방법은 무엇입니까? 나는 이것을 내 코드에 구현하는 방법을 이해할 수 없었습니다.

코드는 다음과 같습니다.

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

def paginate(request, object_list, paginate_by=10):
   try:
      if "per_page" in request.session:
        per_page = request.session["per_page"]
      else:
        request.session["per_page"] = int(request.REQUEST['p'])
        per_page = request.session["per_page"]
        request.session.set_expiry(0)
   except:
      per_page = 10

   paginator = Paginator(object_list, per_page)

   try:
      page = int(request.GET.get('page', '1'))
   except ValueError:
      page = 1

   try:
      items = paginator.page(page)
   except (EmptyPage, InvalidPage):
      items = paginator.page(paginator.num_pages)

   return items

그런 다음 내 템플릿에는 페이지 매김 링크를 렌더링 할 수 있습니다.

<div class="pagination" align="center"> 
 <span class="step-links"> 
  {% if items.has_previous %} 
    <a href="?page={{ items.previous_page_number }}">previous</a> 
  {% endif %} 
  <span class="current"> 
    Page {{ items.number }} of {{ items.paginator.num_pages }} 
  </span> 
  {% if items.has_next %} 
    <a href="?page={{ items.next_page_number }}">next</a> 
  {% endif %} 
 </span> 
</div>
도움이 되었습니까?

해결책

세션을 활성화하여이를 달성 할 수 있습니다.

이 장을 읽는 것이 좋습니다 세션, 사용자 및 등록 Djangobook 웹 사이트에서.


편집 : 이제 세션을 활성화 했으므로 문제는 템플릿의 하이퍼 링크라고 생각합니다. 예를 들어 Ampersand를 사용하여 URL에서 여러 매개 변수를 분리하십시오.

 <a href="?p={{ request.session.per_page }}&page={{ items.next_page_number }}">next</a> 

편집 2 : 세션 만료에 문제가 무엇인지 이해하는지 잘 모르겠습니다. 브라우저가 닫히면 세션이 만료되도록 설정하는 라인은 다음과 같습니다. request.session.set_expiry(0). Django 문서를 참조하십시오 시야에서 세션을 사용합니다 당신이 그것을 바꾸고 싶다면.

DIGG 스타일의 페이지 절약을 만들려면 현재 페이지 번호와 총 페이지 수를 가져 오는 기능을 작성하고 페이지 번호 목록을 반환해야합니다. 그런 다음 템플릿에서 페이지 번호를 통과하고 페이지에 대한 링크를 구성하십시오.

페이지 번호 목록 목록을 사용하면 페이지 번호를 그룹으로 나눌 수 있습니다.

[[1,2], [20,21,22,23,24], [30,31]]

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top