Pagination in Django Using Filter Set

1 min read

jika melakukan filter set jika result melibihi batas range page maka halaman selanjutnya filter set tidak bekerja melainkan hanya berfungsi sebagai pagination dengan query set saja, filter terabaikan maka dari itu dibutuhkan beberapa script tambahan untuk mengatasinya

views.py

from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger

def homedefault(request):

    posts = Issue.objects.all().order_by('-ts')
    categories = Category.objects.order_by().values().distinct()

    
    myFilter = IssueFilter(request.GET, queryset=Issue.objects.all().order_by('-ts'))
    postfilter = myFilter.qs
    totalfilter = myFilter.qs.count()
    notfound = Issue.objects.filter(status=None)
    # print('Not Found: ',notfound)
    paginator = Paginator(myFilter.qs, 6)
    page = request.GET.get('page')
    new_request = ''
    for i in request.GET:
        if i != 'page':
            val = request.GET.get(i)
            new_request += f"&{i}={val}"

    # Handle out of range and invalid page numbers:
    try:
        posts = paginator.page(page)
    except PageNotAnInteger:
        posts = paginator.page(1)
    except EmptyPage:
        posts = paginator.page(paginator.num_pages)


    

    context = {

        'slacks': posts,
        'categories':categories,
        'new_request':new_request,


    }
    return render(request, 'issue/homedefault.html', context)

kemudian padah homedefault.html pagination dengan script berikut:

                    

maka hasilnya jika klik page kedua dengan model filter set

jika tanpa modifikasi filter set pagination

How to Run Django on Jupyter Notebook Visual Code

previously I have struggled to debug my app when running Python app directly; I need it to run on my Jupyter Workspace easily to...
admin
27 sec read

Multiple Database in Django

how to combine multiple database in django router/db_routers.py settings.py Command Migration Calling Object Database
admin
2 min read

How to secure important data with environments in Django

settings.py .Env
admin
20 sec read

Leave a Reply

Your email address will not be published. Required fields are marked *