2016-04-07 2 views
0

Ich habe dieses seltsame Problem, bei dem, unabhängig davon, was ich an meine Ansicht weitergebe, Djangos Paginierung immer sagt, dass meine Seitennummer keine Ganzzahl ist. richtigDjango Seitennummerierung immer steigend PageNotAnInteger

training_sesions = TrainingSession.objects.all() 
page_num = int(request.GET.get('page', 1)) 
paginator = Paginator(training_sessions, 25) 
page = paginator.page(page_num) 

try: 
    sessions = paginator.page(page) 
except (PageNotAnInteger, EmptyPage): 
    sessions = paginator.page(1) 

Ich habe bestätigt, dass page_num ist ein int, paginator und Seite an die entsprechenden Klassen fertig, und meine Anfrage Parameter übergeben wird.

Ich habe sogar versucht, nur eine gerade Zahl an paginator.page übergeben und ich bekomme immer noch die Ausnahme.

+0

könnten Sie eine genaue Fehlermeldung posten? –

Antwort

0

Wie in den OP-Kommentaren erwähnt, habe ich das Seitenobjekt vom Paginator redundant an einen anderen Aufruf von paginator.page übergeben. Geändert auf die Nummer und es funktioniert jetzt.

0

Vor dem try/except in Ihrem Code Sie versuchen Einstellung der Seite des paginator und dessen diese Zeile, die den Fehler erhöhen, da Sie die Seite, um etwas anderes innerhalb des Blocks setzen können Sie einfach diese Zeile löschen und die Index-Variable Sie einstellen benutzen um die Seite nachzuschlagen.

training_sesions = TrainingSession.objects.all() 
page_num = int(request.GET.get('page', 1)) 
paginator = Paginator(training_sessions, 25) 

try: 
    sessions = paginator.page(page_num) 
except (PageNotAnInteger, EmptyPage): 
    sessions = paginator.page(1) 
Verwandte Themen