Blog

django-endless-pagination 을 이용한 페이징구현 Part 1.

January 22, 2014

django-endless-pagination 을 이용한 페이징구현 Part 1.

페이징 기능은 사실 게시판에 있어서 필수적인 기능인데 구현하는데 있어서 겁을 먹게 되는것 같다. (나같은 초보 웹쟁이는 더 그렇지) django 에서 페이징 기능을 쉽게 추가할수 있는것이 있을까 싶어서 djangopackages 에서 찾아 봤는데 pagination 이라는 단어로 검색했을때 search weight 가 78%인 django-endless-pagination 를 선택했는데 생각보다 문서화가 잘되어 있다. 
 

1. 설치하기

pip를 이용해서 설치하면 된다. 

pip install dajngo-endless-pagination 

pip가 아닌 방법으로 설치할 경우에는 여기를 참고하면 될 듯. 그리고 나서 해야할 부분을 settings.py에 request context processor 를 지정해 줘야 한다. 아래의 코드를 추가해 주면 된다. 

마지막으로 settings.py 에 INSTALLED_APPS 에 ‘endless_pagination’ 을 넣어주는 것으로 설정을 마무리 하면 된다. 

2. Digg-Style 구현하기

문서에 보면 Digg-Style 이라고 되어 있는데 일반 게시판에서 보면 1, 2, 3, 4 식으로 나오는 페이징 스타일을 말하는 것이다. 일단 기본적으로 어떤 리스트를 가져와서 템프릿 html에서 보여주는 코드가 있다고 가정하자. 


이 코드는 리스트에서 데이터를 가져와서 name 을 <li> 태그를 이용해서 보여주는 것이다. 여기에 적용을 하면 간단하게 추가해 주면 끝.

원래 코드를 크게 수정할 필요 없다.  {% load endless %}, {% show_pages %} 이 부분은 있는대로 사용하면 되는데  {% paginate meta_list %}  이 부분은 사용자가 meta_list 대신에 entries 라고 사용하면  {% paginate entries %} 로 바꿔줘야 한다. 

결과를 보면 아래의 그림과 같이 페이징이 되는것을 볼수 가 있다. 

사실 구현하려고 했던 페이짇은 이런 숫자가 나와서 선택하는 스타일이 아니라, 아래로 내릴때마다 혹은 더보기 버튼을 누를때 가져오는 방식이다. dajngo-endless-pagination 에서는 이러한 방식을 지원하기 위해서 Digg-Style 말고 Twitter-Style 을 제공하고 있다. Part2 에서는 Twitter-Style 의 적용에 대해서 살펴보도록 하겠다. 

저작자 표시
비영리
변경 금지