Düzgün örnek bulmak kolay olmadı bu yüzden bir kaç örneği birleştirip kendi siteme göre çözümlemeler yaptım. Örneği burada paylaşıyorum böylelikle sizlerde kendi sorunlarınızı çözebilirsiniz.
view.py de şunları yapıyoruz. tüm dosyayı kopyalamadım çünkü çok uzun sadece bahsi geçen kısım şöyle olacak:
#normal view modüllerine şu eklenecek
from django.core.paginator import Paginator,InvalidPage, EmptyPage
def index(request, page=1):
list = pnews.objects.all().order_by('-pdate')
paginator = Paginator(list, 5)
try:
results = paginator.page(page)
except(InvalidPage, EmptyPage):
results = paginator.page(paginator.num_pages)
return render_to_response('news/homepage.html', {"results":results})
urls.py şu satırı ekledim:
url(r'^news/(?Pd+)/
Burada yazdığımız satır şu işe yarıyor urlmiz/news/1 şeklinde kaçıncı sayfadaysak onu gösteriyor.
template dosyamızı şu şekilde düzeltiyoruz:
previous
{%endif%}
Page {{results.number}} of {{results.paginator.num_pages}}
{%if results.has_next%}
next
{%endif%}
Burada toplam kaç sayfada olduğumuzu gösteriyoruz. Bulunduğumuz sayfanın öncesi varsa öncesine, sonrası varsa da sonrasına link veriyoruz. Normalde düz liste olunca 1 yazılırdı ama pagination yapınca 2 ile verileri çekiyoruz bunuda belirtmiş olayım.
{% for pnews in results %} 1
{% for pnews in results.object_list %} 2
Ek:Tagların bazıları görünmüyor mouse ile seçip urllere bakın elimden gelen bir şey yok bloggerdaanca bu kadar kod yazılıyor.
, 'cms.news.views.index', name='gmsnews'),
Burada yazdığımız satır şu işe yarıyor urlmiz/news/1 şeklinde kaçıncı sayfadaysak onu gösteriyor.
template dosyamızı şu şekilde düzeltiyoruz:
Burada toplam kaç sayfada olduğumuzu gösteriyoruz. Bulunduğumuz sayfanın öncesi varsa öncesine, sonrası varsa da sonrasına link veriyoruz. Normalde düz liste olunca 1 yazılırdı ama pagination yapınca 2 ile verileri çekiyoruz bunuda belirtmiş olayım.
Ek:Tagların bazıları görünmüyor mouse ile seçip urllere bakın elimden gelen bir şey yok bloggerdaanca bu kadar kod yazılıyor.