Did you know the Django ListView supports pagination out of the box? All you need to do is specify the number of items per page with the
class ArticleList(ListView): model = Article paginate_by = 10
The queryset available in object_list will be paginated, so you will only get 10 results.
paginator will be added to the context so you can have pagination buttons and know which page you are on.
The documentation for this is buried under MultipleObjectMixin’s documentation.