2017-10-02 7 views
0

ich versuche Paginierung Funktion basiert-Ansicht zu tun, es funktioniert, aber ... ich werde Ihnen ein Beispiel geben:django Paginierung funktioniert nicht richtig

Wenn ich insgesamt 100 Ergebnisse haben und i möchte um 50 paginieren, wird es 2 Seiten geben, aber beide Seiten haben gleiche 100 Ergebnisse. Ursache, wenn ich um 50 paginieren will, wird es mir 2 Seiten geben.

Ich verwendete die Funktion basierte Ansicht von diesem link. Ich möchte nicht klassifiziert anzeigen, wenn ich implementieren, dass der Rest des Codes nicht funktionieren würde.

Ich werde einen Teil meines Codes dafür veröffentlichen.

views.py

def search_form_table(request, pk): 
    table_name = Crawledtables.objects.get(id=pk) 
    t = create_model(table_name.name) 
    if request.method == 'GET': 
     form = AllTablesForm(request.GET) 
     if form.is_valid(): 
      cd = form.cleaned_data 
      title = cd['title'] 
      url = cd['url'] 
      query = t.objects.filter(title__icontains=title, 
           url__icontains=url) 

      page = request.GET.get('page', 1) 

      paginator = Paginator(query, 50) 
      try: 
       users = paginator.page(page) 
      except PageNotAnInteger: 
       users = paginator.page(1) 
      except EmptyPage: 
       users = paginator.page(paginator.num_pages) 

      return render(request, 'search_table.html', {'tbl_name': table_name, 
                  'users': users, 
                  'form': form, 
                  'details': query}) 

Antwort

Verwandte Themen