Ich verbessere meine Django project
mit Seitenumbruch, um das Abfrageergebnis Seite für Seite anzuzeigen. Dank @neverwalkaloner für die Hilfe: Create several pages from arrayDjango Paginierung zeigt nicht alle Seiten
Aber ich bekomme einen unlösbaren Fehler. Ich kann die erste Seite anzeigen und es funktioniert ziemlich gut, aber wenn ich die nächste Seite wähle, wird sie nicht mit den nächsten Ergebnissen angezeigt.
Wie Sie sehen können:
Erste Seite
Zweite Seite
Das ist meine Ansicht:
@login_required
def Table_annuelle_BirthCertificate(request) :
query_naissance = request.GET.get('q1')
request.session['query_naissance'] = query_naissance
if query_naissance :
query_naissance_list = BirthCertificate.objects.filter(created__icontains=query_naissance).order_by('lastname')
else :
query_naissance_list = BirthCertificate.objects.none() # == []
paginator = Paginator(query_naissance_list, 3)
page = request.GET.get('page', 1)
try:
query_naissance_list = paginator.page(page)
except PageNotAnInteger:
query_naissance_list = paginator.page(1)
except EmptyPage:
query_naissance_list = paginator.page(paginator.num_pages)
context = {
"BirthCertificate":BirthCertificate,
"query_naissance" : query_naissance,
"query_naissance_list" : query_naissance_list,
"PageNotAnInteger":PageNotAnInteger,
}
return render(request, 'annuel.html', context)
Und meine Vorlage:
<h4 class = "col-sm-10"> <b><font color="#0083A2"> <span class="glyphicon glyphicon-user"></span> Prévisualisation de la table annuelle des naissances </b></font></h4>
<form class = "col-sm-10" method="GET" action="">
<input type="text" name="q1" placeholder="Entrer une année" value="{{ request.GET.q1 }}">
<input class="button" type="submit" value="Rechercher">
</form>
<br></br>
<br></br>
<table style="width:50%">
<tbody>
<tr>
<th>Nom & prénom(s)</th>
<th>Lieux de Naissance</th>
<th>Date des actes</th>
<th>Numéro de l'acte</th>
</tr>
{% for item in query_naissance_list %}
<tr>
<td> {{item.lastname}} {{item.firstname}} </td>
<td> {{item.birthcity}} ({{item.birthcountry.name}}) </td>
<td> {{item.created}} <p></p> {{item.birthday}} (Naissance) </td>
<td> {{item.id}} </td>
</tr>
{% endfor %}
</tbody>
</table>
{% if query_naissance_list.has_previous %}
<a href="?page={{ query_naissance_list.previous_page_number }}">Page précédente</a>
{% endif %}
<span class="current">
Page {{ query_naissance_list.number }} sur {{ query_naissance_list.paginator.num_pages }}.
</span>
{% if query_naissance_list.has_next %}
<a href="?page={{ query_naissance_list.next_page_number }}">Page suivante</a>
{% endif %}
Sie haben eine Idee? Ich überprüfe viele Tutorials und ich finde nicht, wo ich etwas vergessen habe?
Es könnte möglich sein, dass 'query_ness_list = paginator.page (page)' innerhalb der 'try' Block wirft eine Ausnahme, die Sie nicht sehen –
Ich habe das @Sayse Beispiel verwendet und es funktioniert. Ich musste jedesmal meine 'q1'-Variable für jede Seite angeben. Ich dachte, es wäre global für alle Seiten und schließlich nicht – Deadpool