In [1]:
from organizer.models import Tag
Tag.objects.count()


Out[1]:
16

In [2]:
Tag.objects.all()[:5]


Out[2]:
[<Tag: Augmented Reality>, <Tag: Big Data>, <Tag: Django>, <Tag: Education>, <Tag: Ipython>]

In [3]:
from django.core.paginator import Paginator
paginator = Paginator(Tag.objects.all(), 5)
paginator.count


Out[3]:
16

In [4]:
page1_tags = paginator.page(1)
page1_tags.object_list


Out[4]:
[<Tag: Augmented Reality>, <Tag: Big Data>, <Tag: Django>, <Tag: Education>, <Tag: Ipython>]

In [5]:
list(page1_tags)


Out[5]:
[<Tag: Augmented Reality>,
 <Tag: Big Data>,
 <Tag: Django>,
 <Tag: Education>,
 <Tag: Ipython>]

In [6]:
paginator is page1_tags.paginator


Out[6]:
True

In [7]:
paginator.num_pages


Out[7]:
4

In [8]:
page1_tags.paginator.num_pages


Out[8]:
4

In [9]:
page1_tags.number


Out[9]:
1

In [10]:
page1_tags.has_other_pages()


Out[10]:
True

In [11]:
page1_tags.has_next()


Out[11]:
True

In [12]:
page1_tags.next_page_number()


Out[12]:
2

In [13]:
page1_tags.has_previous()


Out[13]:
False

In [14]:
from django.core.paginator import EmptyPage
try:
    page1_tags.previous_page_number()
except EmptyPage as e:
    print(e)


That page number is less than 1

In [15]:
try:
    page0_tags = paginator.page(0)
except EmptyPage as e:
    print(e)


That page number is less than 1

In [16]:
try:
    page1000_tags = paginator.page(1000)
except EmptyPage as e:
    print(e)


That page contains no results

In [17]:
from django.core.paginator import PageNotAnInteger
try:
    pageA_tags = paginator.page('A')
except PageNotAnInteger as e:
    print(e)


That page number is not an integer

In [18]:
page1_tags = paginator.page('1')