Django: That page number is less than 1


Vous avez fait une upgrade vers Django 1.5 et paf, votre pagination vous dégobille une erreur.

C’est normal, et c’est dans le changelog : à partir de maintenant, l’objet page lève une exception si vous essayez de récupérer une page précédente ou suivante quand elle n’existe pas.

Par exemple, si vous êtes à la page 1, il n’y a pas de page 0, et donc si dans votre template vous faites ça :

{{ page_obj.previous_page_number }}

Vous allez vous retrouver avec ça :

*** EmptyPage: That page number is less than 1

La solution est simplement de vérifier qu’il existe une page précédente (ou suivante). Par exemple :

{{ if page_obj.has_previous }}
    {{ page_obj.previous_page_number }}
{{ endif }}
Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.