#add this to views.py 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}) #this to urls.py modify that for your urls url(r'^news/(?P\d+)/$', 'cms.news.views.index', name='gmsnews'), #this to your template so you can visit other pages
{%if results.has_previous%} previous {%endif%}

Page {{results.number}} of {{results.paginator.num_pages}}

{%if results.has_next%} next {%endif%}
#note that you have to call pages like this {% for pnews in results.object_list %} #not like {% for pnews in results %}