Mostrar solo algunos de los números de página por paginación django

Estoy usando el paginador django en la plantilla. Está funcionando bien, pero no es bueno cuando hay un gran número de páginas.

views.py:

def blog(request):
    blogs_list = Blog.objects.all()

    paginator = Paginator(blogs_list, 1)

    try:
        page = int(request.GET.get('page', '1'))
    except:
        page = 1

    try:
        blogs = paginator.page(page)
    except(EmptyPage, InvalidPage):
        blogs = paginator.page(page)
    return render(request, 'blogs.html', {
        'blogs':blogs
        })

fragmento de la plantilla:

  <div class="prev_next">

    {% if blogs.has_previous %}
      <a class="prev btn btn-info" href="?page={{blogs.previous_page_number}}">Prev</a>
    {% endif %}
    {% if blogs.has_next %}
      <a class="next btn btn-info" href="?page={{blogs.next_page_number}}">Next</a>
    {% endif %}
    <div class="pages">
      <ul>
      {% for pg in blogs.paginator.page_range %}
        {% if blogs.number == pg %}
          <li><a href="?page={{pg}}" class="btn btn-default">{{pg}}</a></li>
        {% else %}
          <li><a href="?page={{pg}}" class="btn">{{pg}}</a></li>
        {% endif %}
      {% endfor %}
      </ul>
    </div>
    <span class="clear_both"></span>

  </div> 

Ahora se ve así:

¿Qué debo hacer para mostrar solo 7 números de página y no todos van desde el número de página actual, como este:

Prev 1 (2) 3 4 5 Next

Espero haber sido claro, si no, por favor pregunte. Su ayuda y orientación serán muy apreciadas. Gracias.

Respuestas a la pregunta(6)

Su respuesta a la pregunta