Обработка ошибки PageNotAnInteger или отключение элиминированной нотации

Я хочу сделать ускоренную пагинацию страниц типа 1,2,3...8,9,10. Вот мой код

в models.py

from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=200)
    email = models.EmailField()

в файле views.py

from django.shortcuts import render
from .models import Author
from django.core.paginator import Paginator

def author(request):
    authors = Author.objects.all()
    paginator = Paginator(authors, 10)
    page_number = request.GET.get("page")
    authors_data = paginator.get_page(page_number)
    elided_page = paginator.get_elided_page_range(page_number, on_each_side=3,on_ends=2)
    context = {
        "authors" : authors_data,
        "elided_data" : elided_page,
        }
    return render (request, "authors.html", context)

в файле author.html

# all authors
  {% for author in authors  %}
   <p> {{author}}</p>
  {% endfor %}

# pagination part
  {% for i in elided_data  %}
    <a href="?page={{i}}">{{i}}</a>
  {% endfor %}

Таким образом я получаю ускоренную пагинацию типа 1,2,3...9,10 идеально. Но проблема в том, что когда я нажимаю на три точки (...), то появляется ошибка pageNotAnInteger. Есть ли какой-нибудь способ справиться с этой ошибкой или отключить ссылку на три точки?

После того, как я потратил столько времени и исследований, я нашел ответ.

поэтому в views.py удалите переменную elided_page и ключ elided_data из контекстного диктанта.

from django.shortcuts import render
from .models import Author
from django.core.paginator import Paginator

def author(request):
    authors = Author.objects.all()
    paginator = Paginator(authors, 2)
    page_number = request.GET.get("page")
    authors_data = paginator.get_page(page_number)

    context = {
        "authors" : authors_data,
        }
    return render (request, "authors.html", context)

и в файле author.html

 # retrive all authors
  {% for author in authors  %}
   <p> {{author}}</p>
  {% endfor %}


# pagination part
    {% for i in authors.paginator.get_elided_page_range %}
         {% if i == authors.paginator.ELLIPSIS %}
            <span class="page-link">...</span>
        {% else %}
            <a class="page-link" href="?page={{ i }}">{{ i }}</a>
        {% endif %}
    {% endfor %}
Вернуться на верх