Se eu tiver 100 páginas, irá mostrar do número 1 ao 100 ? Se sim, como eu faço pra mostrar exemplo: 1 2 3...43..98 99 100 Não precisa ser exatamente assim, mas alguma forma de não mostrar o número 1 ao 100.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Se eu tiver 100 páginas, irá mostrar do número 1 ao 100 ? Se sim, como eu faço pra mostrar exemplo: 1 2 3...43..98 99 100 Não precisa ser exatamente assim, mas alguma forma de não mostrar o número 1 ao 100.
Olá Giulliano, tudo bem com você?
Peço desculpas pela demora no retorno.
Para limitarmos o número de páginas que serão apresentadas caso a aplicação tenha múltiplas receitas salvas, será necessário realizar a modificação da lógica presente no arquivo templates/receita/index.html responsável por definir a apresentação das páginas na nossa aplicação.
Localize a tag <section class="top-catagory-area section-padding-20-0"> que contém a lógica de apresentação das páginas e substitua seu conteúdo pelo conteúdo disponível abaixo:
<div class="container">
{% if receitas.has_other_pages %}
<ul class="pagination">
{% if receitas.has_previous %}
<li class="page-item">
<a href="?page={{ receitas.previous_page_number }}" class="page-link">«</a>
</li>
{% else %}
<li class="page-item disabled">
<a class="page-link">«</a>
</li>
{% endif %}
{% with start_page=receitas.number|add:'-1' %}
{% with end_page=receitas.number|add:'1' %}
{% for page_num in receitas.paginator.page_range %}
{% if page_num == receitas.number %}
<li class="page-item active">
<a class="page-link">{{ page_num }}</a>
</li>
{% elif page_num >= start_page and page_num <= end_page %}
<li class="page-item">
<a href="?page={{ page_num }}" class="page-link">{{ page_num }}</a>
</li>
{% endif %}
{% endfor %}
{% endwith %}
{% endwith %}
{% if receitas.has_next %}
<li class="page-item">
<a href="?page={{ receitas.next_page_number }}" class="page-link">»</a>
</li>
{% else %}
<li class="page-item disabled">
<a class="page-link">»</a>
</li>
{% endif %}
</ul>
<!-- Tag responsável por apresentar a quantidade total de receitas -->
<p>Total de Receitas: {{receitas.paginator.count}}</p>
{% endif %}
</div> No código acima, a lista de itens é armazenada em uma variável chamada receita. Em seguida, a lista é dividida em páginas usando o Paginator do Django, onde cada página terá no máximo 3 itens.
O trecho with start_page=receitas.number|add:'-1' cria uma variável start_page que guarda o valor da página inicial do intervalo a ser exibido. Já o trecho with end_page=receitas.number|add:'1' cria uma variável end_page que guarda o valor da última página do intervalo a ser exibido.
Por fim, o trecho {% for page_num in receitas.paginator.page_range %} itera sobre todas as páginas da lista. Se a página estiver no intervalo definido pelas variáveis start_page e end_page, o link para a página é criado. Caso contrário, o link não é exibido.
GIF contendo o resultado

Após as mudanças aplicadas salve o arquivo templates/receita/index.html e inicie a aplicação Django e verifique o número de links de páginas exibidos. Importante: O código foi testado em conjunto com o código da aula e dependendo da configuração da sua aplicação, será necessário realizar a adição de múltiplas receitas para que seja criado mais de 3 páginas e assim exibir o resultado.
Abraços e bons estudos!