Wie verwende ich die Paginierung mit Django class based generic ListViews?
Wie verwende ich die Paginierung mit Django 1.3?
Die Dokumentation ist nicht sehr klar.
- Was geht um meine
views.py
? - Was geht an meinem template?
- Was geht um meine URLconf Datei?
InformationsquelleAutor der Frage gath | 2011-05-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, Sie bitten, für Informationen über die Verwendung der Paginierung mit der neuen Klasse basierend Aussicht da, mit traditionellen Funktion basierte Ansichten, es ist leicht zu finden. Ich fand, dass, indem Sie nur das
paginate_by
variable ist genug, um aktivieren Sie die Paginierung. Finden Sie in Class-based generic views.Beispielsweise in Ihrem
views.py
:In Ihrer Vorlage (
car_list.html
), können Sie einen Seitenumbruch Abschnitt wie folgt aus (wir haben einige Kontext-Variablen zur Verfügung:is_paginated
page_obj
undpaginator
).Seite angezeigt wird durch einen GET-parameter, einfach hinzufügen
?page=n
um die URL.InformationsquelleAutor der Antwort ervin
angenommen, ich habe eine Klasse, in der app/models.py benannt
FileExam(models.Model)
:app/models.py
app/views.py
nur eine kleine Veränderung in der
get_context_data
und Hinzugefügt Paginierung code von django-Dokumentation hierapp/templates/app/exam_list.html
normalen Inhalt Liste
Seitenumbruch Abschnitt
app/urls.py
InformationsquelleAutor der Antwort Yanwar Sky
Haben wir 2 Methoden, dies zu tun.
Erste ist einfach und legen Sie das Feld Klasse
paginate_by
. Nichts müssen wir tun, mitget_context_data
Methode.Die zweite Methode ist ein wenig kompliziert, aber wir können gewinnen Sie mehr Verständnis über die Paginierung und anpassen von komplexen Paginierung oder mehrere Paginierung. Mal sehen.
Kann es sein, erfolgt in drei Schritten.
1.Überschreiben
get_context_data
Methode IhrerView
.Pass
page_keys
undpages
so dass wir Durchlaufen der Listen und vermeiden Sie hart codierte .2.Passen Sie Ihre sub
template
.Definieren wir einige Variablen, so können wir Durchlaufen und die Paginierung Liste.
pagination.html
3.Anpassen äußeren
template
.index.html
InformationsquelleAutor der Antwort W.Perrin