11 Aralık 2017 10:24

Muslu Y.

Django

Django 2.0.1 Sayfalama Paginator örneği

Anasayfa

Django

Django 2.0.1 Sayfalama Paginator örneği...

Paginator

Paginator ile modelimizdeki kayıtları sayfalama yapabiliyoruz. get_page() fonksiyonu artık hatala karşı daha düzenli. Koşullar ile kontrol etmeye gerek kalmıyor. Eğer istenen sayfa rakam değil ise ilk sayfaya, negatif ya da toplam sayfa sayısından büyük ise son sayfaya yönlendiriyor.

 

Örnek

 ilkuygulamam/views.py

def kategori_makaleler(request, katslug):
    makale_listesi         = Makaleler.objects.filter(durum=True, kategori__slug=katslug).order_by('-kayittarihi')
    son_makale_listesi = Makaleler.objects.filter(durum=True).order_by('-kayittarihi')[0:10]
    kategori_listesi       = Kategoriler.objects.filter(durum=True).values('baslik', 'slug').annotate(count=Count('makaleler__baslik')).filter(count__gt=0).order_by('-count', 'baslik')
    kategori_detay       = Kategoriler.objects.get(slug=katslug)page = request.GET.get('sayfa', 1)paginator = Paginator(makale_listesi, 6)

try:
    secili_sayfaki_konular = paginator.page(page)
except PageNotAnInteger:
    secili_sayfaki_konular = paginator.page(1)
except EmptyPage:
    secili_sayfaki_konular = paginator.page(paginator.num_pages)

return render(request, 'katdetay.html', {'son_makale_listesi': son_makale_listesi, 'makale_listesi': secili_sayfaki_konular, 'kategori_listesi': kategori_listesi, 'kategori_detay':kategori_detay})

 

templates/katdetay.html

{% if makale_listesi.has_other_pages %}
<div class="col-md-9 center">
<div class="pagination">
{% if makale_listesi.has_previous %}
<a href="?sayfa={{ makale_listesi.previous_page_number }}">&laquo;</a>
{% else %}
<p class="disabled"><span>x</span></p>
{% endif %}
{% for i in makale_listesi.paginator.page_range %}
{% if makale_listesi.number == i %}
<a href="?sayfa={{ i }}" class="active">{{ i }}</a>
{% else %}
<a href="?sayfa={{ i }}">{{ i }}</a>
{% endif %}
{% endfor %}
{% if makale_listesi.has_next %}
<a href="?sayfa={{ makale_listesi.next_page_number }}">&raquo;</a>
{% else %}
<p class="disabled"><span>x</span></p>
{% endif %}
</div>
</div>
{% endif %}

 

 

 

Django

hakkında diğer konular

Makdos Bilişim Teknolojileri 2015 - 2025