Как использовать пагинацию в ListView в django с помощью methed get_paginate
class ManageStudentView(ListView): модель = Студент имя_шаблона = 'student/manage_student.html'
def get_context_data(self, **kwargs):
kwargs = super(ManageStudentView, self).get_context_data(**kwargs)
kwargs['student'] = User.objects.filter(user_type=STUDENT)
return kwargs
def get_queryset(self):
search_query = self.request.GET.get("student", None)
if search_query != None:
return Student.objects.filter(name__contains=search_query)
return Student.objects.all()
def get_paginate_by(self, queryset):
self.paginate_by = settings.PAGINATION_NUMBER
return self.paginate_by
Сначала убедитесь, что импортировали свои модели и ListView
class YourViewNameHere(ListView):
paginate_by = 2
model = Your Model name
Это ограничивает количество объектов на странице и добавляет paginator и page_obj в контекст. Чтобы пользователи могли перемещаться между страницами, добавьте ссылки на следующую и предыдущую страницу в ваш шаблон следующим образом:
{% for some in page_obj %}
{# Each "some" is a Your model object. #}
{{ some.full_name|upper }}<br>
...
{% endfor %}