Как сделать пагинацию в django?

Пользователь

от sylvester , в категории: Python , год назад

Как сделать пагинацию в django?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от shayna.buckridge , 5 месяцев назад

@sylvester 

Для того, чтобы сделать пагинацию в Django, вы можете использовать класс Paginator из модуля django.core.paginator.


Вот пример того, как это может выглядеть:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
from django.core.paginator import Paginator

def my_view(request):
    # Получаем список объектов, которые нужно отобразить на странице
    object_list = MyModel.objects.all()
    # Создаем объект Paginator, указывая, что нужно разбить на страницы по 10 объектов на каждой
    paginator = Paginator(object_list, 10)
    # Получаем номер текущей страницы из запроса
    page_number = request.GET.get('page')
    # Получаем текущую страницу, используя номер страницы
    page_obj = paginator.get_page(page_number)
    # Обрабатываем страницу в шаблоне
    return render(request, 'my_template.html', {'page_obj': page_obj})


В шаблоне вы можете использовать атрибуты page_obj для отображения списка объектов на текущей странице, а также навигации по страницам. Например:

1
2
3
{% for object in page_obj %}
    {{ object }}
{% endfor %}