Intermediate
How can you implement pagination in Django views?
Pagination in Django allows you to divide a large set of data into manageable pages. This improves the user experience by preventing information overload.
To implement pagination, follow these steps:
- Import
Paginator
andPage
fromdjango.core.paginator
. - Pass your queryset to the
Paginator
and specify the number of items per page. - Get the current page number from the request and retrieve the corresponding page.
Here’s an example:
from django.core.paginator import Paginator
def my_view(request):
object_list = MyModel.objects.all()
paginator = Paginator(object_list, 10) # Show 10 items per page
page_number = request.GET.get('page')
page_obj = paginator.get_page(page_number)
return render(request, 'my_template.html', {'page_obj': page_obj})
In your template, you can iterate over page_obj
to display items and add pagination controls.