Question

J'ai mis django-dans mon application pagination pour prendre soin de la pagination, et il est tout 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.

Quelle est la bonne façon d'aller à ce sujet?

Était-ce utile?

La solution

Lorsque vous construisez un Paginator, vous passez dans le nombre d'enregistrements par page. Vous devez obtenir cette valeur de l'utilisateur, stocker et transmettre dans.

Par exemple, il pourrait être un paramètre utilisateur - le cas échéant, l'ajouter à votre réglage utilisateur modèle, recueillir sous une forme, stocker, puis obtenir le modèle de la db avant de créer le Paginator et le transmettre dans.

Ou il pourrait simplement être une variable de session qui est définie à partir d'un élément de la page -. À nouveau, mettre l'élément sur la page, l'utiliser pour définir la variable de session, et le transmettre dans l'objet Paginator

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

flexible dans Django pagination

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 template.

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

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top