Постраничный вывод в Django

3516 0

Что называется: "проще некуда"

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

(В теле представления, после выборки из базы или формирования списка вставляем)

paginator = Paginator(list, 10)
try: 
    page= int(request.GET.get('page','1'))
except ValueError:
    page=1
try:
    p_list = paginator.page(page)
except (EmptyPage, InvalidPage):
    p_list = paginator.page(paginator.num_pages)

(В шаблоне соответственно будем использовать не list а p_list)


Кусок шаблона для навигации по страницам:

<div class="pagination">
<span class="step-links">
{% if p_list.has_previous %}
<a href="?page={{ p_list.previous_page_number }}">&laquo; назад</a>
{% endif %}
<span class="current"> страница {{ p_list.number }} из {{ p_list.paginator.num_pages }} </span>
{% if p_list.has_next %}
<a href="?page={{ p_list.next_page_number }}">вперед &raquo;</a>
{% endif %}
</span>
</div>
{% for story in p_list.object_list %}{% endfor %}

Вот и все. :)

Комментарии

Контактные данные

+7 (903) 612-13-42
 Россия, г. Москва