Как решить проблему ошибки django.core.paginator.EmptyPage?

Я пытаюсь фильтровать и пагинацию объектов в шаблоне. Я создал представление и у меня есть 3 объекта. Я хочу перечислить 1 объект на странице. Когда я это делаю, он показывает номера страниц (должно быть 3 страницы), когда я нажимаю кнопку next, он выдает ошибку:

raise EmptyPage(_('Эта страница не содержит результатов')) django.core.paginator.EmptyPage: Эта страница не содержит результатов

Как я могу это решить?

просмотров

class EntitySelect(FormView):
    template_name = 'sgm/entity_select.html'
    form_class = EntitySelectForm

    def get_context_data(self):
        self.context = super().get_context_data(**self.kwargs)
        process_type = ProcessType.objects.get(id=self.kwargs['process_type'])
        entity = process_type.consolidate_on
        rows = getattr(entities, entity).objects.all()
        paginator = Paginator(rows, 10)
        page_number = self.request.GET.get('page')
        if page_number == None:
            page_number = 1
        page_obj = paginator.page(int(page_number))
        rows = getattr(entities, entity).objects.all()
        if entity == 'Merchant':
            tableFilter = MerchantFilter(self.request.GET, queryset=rows)
        else:
            tableFilter = CustomerFilter(self.request.GET, queryset=rows)

        rows_2 = tableFilter.qs
        paginator = Paginator(rows_2, 2)
        page_number = self.request.GET.get('page')
        if page_number == None:
            page_number = 1
        page_obj = paginator.page(int(page_number))
        self.context['entity_type'] = entity
        self.context['columns'] = [field.name for field in getattr(entities, entity)._meta.local_fields if
                                   field.name != 'entity_ptr']
        self.context['tableFilter'] = tableFilter
        self.context['columns'] = [field.name for field in getattr(entities, entity)._meta.local_fields if field.name != 'entity_ptr']
        self.context['rows'] = page_obj
        self.context['process_type'] = process_type

шаблон

 <table class="table table-striped table-condensed table-hover">
        <thead>
          <th> Select </th>
          {% for column in columns %}
            <th> {{ column|title|pretty_title }}</th>
          {% endfor %}
        </thead>
        {% for row in rows %}
          <tr onclick="checked(`{{ row.id }}`)">
            <td>
              <input type="radio" id="{{ row.id }}" name="entity" value="{{ row.identifier }}" required>
            </td>
            <label for="{{ row.identifier }}">
              {% for column in columns %}
                <td> {% if row|get_obj_attr:column %}{{ row|get_obj_attr:column }}{% else %}&nbsp;{% endif %}</td>
              {% endfor %}
            </label>
          </tr>
        {% endfor %}
      </table>
    <div class="col-4 offset-4">
            <nav aria-label="...">
                <ul class="pagination">

                    {% if rows.has_previous %}
                        <li class="page-item">
                            <a href="?page={{ rows.previous_page_number }}" class="page-link">Previous</a>
                        </li>
                        <li>
                            <a class="page-link" href="?page={{ rows.previous_page_number }}">
                                {{ rows.previous_page_number }}
                            </a>
                        </li>
                    {% else %}
                        <li class="page-item disabled">
                            <span class="page-link">Previous</span>
                        </li>
                    {% endif %}

                    <li class="page-item active">
                        <span class="page-link">{{ rows.number }}</span>
                    </li>

                    {% if rows.has_next %}
                        <li class="page-item">
                            <a class="page-link" href="?page={{ rows.next_page_number }}">
                                {{ rows.next_page_number }}
                            </a>
                        </li>
                        <li class="page-item ">
                            <a class="page-link" href="?page={{ rows.next_page_number }}">Next</a>
                        </li>
                    {% else %}
                        <li class="page-item disabled">
                            <span class="page-link">Next</span>
                        </li>
                    {% endif %}

                </ul>
            </nav>
        </div>
Вернуться на верх