Django Filter with Pagination

前端 未结 6 1273
梦谈多话
梦谈多话 2020-12-19 12:47

I\'m attempting to follow the following tutorial for pagination with django filters, but the tutorial seems to be missing something, and i\'m unable to get the pagination to

6条回答
  •  情话喂你
    2020-12-19 13:10

    You can paginate like this:

    Note: user_filter.qs has filtered results and user_filter.queryset has unfiltered results

    views.py

          def search(request):
             user_list = Employee.objects.all()
             user_filter = UserFilter(request.GET, queryset=user_list)
             user_list = user_filter.qs
    
    
             paginator = Paginator(user_list, 10)
             page = request.GET.get('page', 1)
             try:
                users = paginator.page(page)
             except PageNotAnInteger:
                users = paginator.page(1)
             except EmptyPage:
                users = paginator.page(paginator.num_pages)
             args = {'paginator': paginator,'filter':user_filter, 
               'users':users,}
             return render(request, 'search/user_list.html', args)
    

    And then in the template:

       {% for user in users %}
         
          {{ user.employeeusername }}
          {{ user.employeefirstname }}
          {{ user.employeelastname }}
          {{ user.statusid }}
           
    
        
      {% empty %}
        
          No data
        
      {% endfor %}
    
    

     {% if users.has_other_pages %}
       
      {% if users.has_previous %}
    • «
    • {% else %}
    • «
    • {% endif %} {% for i in users.paginator.page_range %} {% if users.number == i %}
    • {{ i }} (current)
    • {% else %}
    • {{ i }}
    • {% endif %} {% endfor %} {% if users.has_next %}
    • »
    • {% else %}
    • »
    • {% endif %}

提交回复
热议问题