Ich entwickle gerade eine Django-Anwendung, die die berüchtigte "Paginierung" -Technik verwenden wird. Ich versuche herauszufinden, wie das Modul django.core.paginator funktioniert.Django Paginierung und "aktuelle Seite"
Ich habe eine Anwendung mit einem Frage-Modell. Ich werde alle Fragen mit diesem Paginator auflisten. Es wird 20 Fragen pro Seite geben.
def show_question(question_pk):
questions = Question.objects.all()
paginator = Paginator(questions, 20)
page = ... # Somehow figure out which page the question is on
return render_to_response('show_question.html', { 'page' : page })
In der Ansicht, wo ich die verschiedenen Seiten auflisten, wie "... 2, 3, 4 , 5, 6, ..." ich irgendwie die aktuelle Seite hervorheben möchte, wie viele Seiten machen.
Es gibt wirklich zwei Dinge, die ich wissen will:
- Wie mache ich Django herauszufinden, welche Seite die Frage an ist?
- Wie würde ich meine Vorlage schreiben, um die aktuell besuchte Seite richtig zu "markieren"?
EDIT: Sorry, ich habe einen Teil dieser Frage vergessen. Ich möchte auch, dass jede Seite außer der aktuellen eine Verbindung zu /questions/{{ that_page.start_index }}
ist. Im Grunde würde jeder Link auf die erste Frage auf dieser Seite verlinken.
Was meinen Sie bei jeder Seite außer der aktuellen wollen auf dieser Seite auf die Frage zu verknüpfen? Wie wird der Benutzer jemals die Seiten wechseln? –
Ich möchte keine übergeben? Seite = 4 GET Request Parameter oder irgendetwas. Ich werde nur/question/4 für Frage 4 verwenden, und dann wird die Ansicht herausfinden, auf welcher Seite diese Frage steht. Deshalb sind die Seitenlinks wirklich auf Fragen gerichtet. –
Würde sich die erste Frage auf einer Seite nicht ändern, wenn mehr Fragen hinzugefügt oder möglicherweise sortiert werden? Aus einer REST/HTTP-Perspektive bedeutet dies, dass die URL nicht auf eine echte Ressource verweist. Aus diesem Grund verwendet Django einen GET-Parameter, um die Anzeigeeigenschaften der Ressource, die die URL identifiziert, zu kommentieren. –