Ошибка EmptyPage, когда страница уже существует в django - PullRequest
0 голосов
/ 26 апреля 2019

У меня проблема с Джанго.

Я создал функцию нумерации страниц, и все в порядке, но когда я пытаюсь перейти на последнюю страницу нумерации страниц, я получаю сообщение об ошибке "EmptyPage this page does not contain results".

Но эта страница действительно существует! остались предметы, но он не показывает пять последних пунктов запроса.

Вот моя функция:

def clasification(request):
    categoria = Clasificacion.objects.filter(existencia=True)
    paginator = Paginator(categoria, 5)
    page = request.GET.get('page')
    try:
        items = paginator.page(page)
    except PageNotAnInteger:
        items = paginator.page(1)
    except EmptyPage:
        items = paginator.page(paginator.num_pages)
    contexto = {'meta_description':'',
                'meta_keywords':'',
                'items':items}
    return render(request, 'adminview/clasification.html', contexto)

Здесь вроде бы все хорошо ...

Взгляните на HTML:

{% if items.has_next or items.has_previous %}
          <ul class="pagination">
            {% if items.has_previous %}
            <li class="page-item"><a class="page-link" href="?page={{ items.previous_page_number }}">Anterior</a></li>
            {% else %}
            <li class="page-item disabled"><a class="page-link">Anterior</a></li>
            {% endif %}
            {% for page in items.paginator.page_range %}
            <li class="page-item {% if items.number == page %}active{% endif %}"><a class="page-link" href="?page={{ page }}">{{ page }}</a></li>
            {% endfor %}
            {% if items.has_next %}
            <li class="page-item"><a class="page-link" href="?page={{ items.next_page_number }}">Siguiente</a></li>
            {% else %}
            <li class="page-item disabled"><a class="page-link" href="?page={{ items.next_page_number }}">Siguiente</a></li>
            {% endif %}
          </ul>
          {% endif %}

Я не знаю, почему я получаю эту ошибку.

Надеюсь, вы сможете мне помочь.

Спасибо!.

1 Ответ

1 голос
/ 26 апреля 2019

В вашем шаблоне вы пытаетесь использовать items.next_page_number, когда items.has_next ложно.

Это решит вашу проблему:

{% if items.has_next %}
  <li class="page-item"><a class="page-link" href="?page={{ items.next_page_number }}">Siguiente</a></li>
{% else %}
  <li class="page-item disabled"><a class="page-link">Siguiente</a></li>
{% endif %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...