Как сделать «компактную» пагинацию в django?
Оставьте две секции:if page.has_previous и if page.has_next
По сути:
if page.has_previous
    page.number   #активная ссылка
else
    page.number
if page.has_next
    page.paginator.num_pages #активная ссылка
else
    page.paginator.num_pages
Будет что-то типа (в зависимости от оформления) "Previous...................Next"
Такое проще решить в верстке и/или в темплейте
https://stackoverflow.com/questions/25420470/limit...
esimakin.github.io/twbs-pagination
Сделай блок с линками на страницы и горизонтальный скролл
karaboz.ru/2007/11/19/paginator-3000-postranichnay...
https://github.com/Cosmologist/paginator3000
Или ограничь вывод линков со страницами
Для слайса +- 1 страница - использовать встроенное решение Page.has_previous + Page.previous_page_number https://docs.djangoproject.com/en/1.10/topics/pagi...
Если нужен слайс страниц больше чем +- 1 придется покопаться в следующих линках
Если их будет мало, то гуглим по django pagination digglike
https://www.djangosnippets.org/snippets/773/
stackoverflow.com/questions/30864011/display-only-...
stackoverflow.com/questions/1689365/show-page-item...
https://djangosnippets.org/snippets/1735/
stackoverflow.com/questions/5426525/django-paginat...
пс большая часть линков может быть устаревшей -- тестируй на здоровье :)