Ограничение диапазона 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 %}
Вернуться на верх