Ограничение диапазона Paginator, чтобы не отображать все страницы
Я только что реализовал пагинатор, но я не хочу иметь тонны вкладок для каждой страницы. Я бы хотел, чтобы он отображал пять страниц и настраивался, когда пользователь меняет страницы.
view
def home(request):
p = Paginator(Post.objects.all(), 2)
page = request.GET.get('page')
post = p.get_page(page)
nums = "a" * post.paginator.num_pages
context = { 'post':post, 'nums':nums}
return render(request, 'blog/home.html', context)
шаблон
<nav aria-label="Page navigation example">
<ul class="pagination justify-content-center">
{% if post.has_previous %}
<li class="page-item"><a class="page-link" href="?page={{ post.previous_page_number }}">Previous</a></li>
{% endif %}
{% for l in nums %}
<li class="page-item"><a class="page-link" href="?page={{ forloop.counter }}">{{ forloop.counter }}</a></li>
{% endfor %}
{% if post.has_next %}
<li class="page-item"><a class="page-link" href="?page={{ post.next_page_number }}">Next</a></li>
{% endif %}
</ul>
</nav>
Я следовал этому посту , но я просто не могу заставить его работать правильно
{% for l in nums.paginator.page_range %}
{% if l <= nums.number|add:5 and l >= nums.number|add:-5 %}
<li class="page-item"><a class="page-link" href="?page={{ forloop.counter }}">{{ forloop.counter }}</a></li>
{% endif %}
{% endfor %}