2009-12-11 5 views
1

J'ai mis en place django-pagination dans mon application pour prendre soin de la pagination, et tout est bon. La seule chose que je ne peux pas comprendre est comment permettre aux utilisateurs de choisir une certaine valeur pour les enregistrements par page, par exemple. 15, 30, 45, 60, 100 ou tous les enregistrements.django-pagination utilisateur enregistrements sélectionnés par page

Quelle est la bonne façon de procéder? Lorsque vous construisez un Paginator, vous transmettez le nombre d'enregistrements par page.

Répondre

3

Par exemple, il peut s'agir d'un paramètre utilisateur - si c'est le cas, ajoutez-le à votre modèle de paramètre utilisateur, collectez-le sous une forme, puis modifiez-le. stockez-le, puis récupérez le modèle à partir de la base de données avant de créer le Paginator et transmettez-le.

Ou il peut s'agir simplement d'une variable de session définie à partir d'un élément de la page - mettez de nouveau l'élément sur la page , utilisez-le pour définir la variable de session et passez-la dans l'objet Paginator.

On dirait qu'il a été couvert dans cette question:

Flexible pagination in Django

EDIT: La lecture du commentaire.

Si vous lisez la source,

http://code.google.com/p/django-pagination/source/browse/trunk/pagination/templatetags/pagination_tags.py

La balise, autopaginate prend un numéro ou une variable de modèle.

if isinstance(paginate_by, int): 
     self.paginate_by = paginate_by 
    else: 
     self.paginate_by = template.Variable(paginate_by) 

, essayez passer dans une variable de modèle dans votre vue 'page_by':10 et l'utilisation {% autopaginate list page_by %} - vous pouvez définir la page_by de la chaîne de requête, db, ou tout ce que vous voulez.

+0

J'avais déjà jeté un coup d'oeil à cette question ... corrigez-moi si je me trompe mais cette approche est pour le standard Django paginator. J'utilise l'application django-pagination (http://code.google.com/p/django-pagination/) – Stephen

+0

merci Lou .... aurait dû twas ce simple :) – Stephen

Questions connexes