10. Paginazione dei Post - Programmare in Python

10. Paginazione dei Post

Dobbiamo aggiungere il parametro paginate_by alla nostra ListView:

urlpatterns = [
    url(r'^$', ListView.as_view(
        queryset = Post.objects.all(),
        template_name = "lista_post.html",
        paginate_by = 5
        ), 
        name = "lista"),
]

E quindi aggiungere i tag di controllo associati alla clausola IF per verificare se sia presente un oggetto pagina precedente o successivo alla pagina che stiamo visualizzando (quindi se il numero di post è superiore al parametro passato a paginate_by) in modo da poter aggiungere il tasto "successivo" e "precedente":

<!DOCTYPE html>
<html lang="it">
<head>
    <meta charset="UTF-8">
    <title>Lista Post</title>
</head>
<body>

        {% for object in object_list %}
            <h1><a href="{{object.get_absolute_url}}/">{{object.titolo}}</a></h1>
            <p>{{object.data}}</p>
            {{ object.contenuto|safe|linebreaks|truncatewords_html:50 }}
        {% endfor %}

        <div>
        {% if page_obj.has_previous %}
            <a href="?page={{ page_obj.previous_page_number }}">Indietro</a>
        {% endif %}

        {% if page_obj.has_next %}
            <a href="?page={{ page_obj.next_page_number }}">Avanti</a>
        {% endif %}
        </div>

</body>
</html>