def paginate(object_list, page_size, page_num): """ Takes an object_list, page_size, page_num and paginates the object list. """ paginator = Paginator(object_list, page_size) try: page = paginator.page(page_num) except PageNotAnInteger: page = paginator.page(1) except EmptyPage: page = Page([], 1, paginator) page.page_range = [] return page start = page.number - 3 if start < 0: start = 0 end = page.number + 2 if end > paginator.num_pages: end = paginator.num_pages page.page_range = paginator.page_range[start:end] return page