Как применить пагинацию в Django's formview?

my view.py

class Formtestview(FormView): 
    template_name = 'test.html'
    form_valid(self, form): 
           'my code to search' => 'result is object_list'
            page = self.request.GET.get('page','1')
            paginate = Paginator(object_list, 10)
            page_obj = paginator.get_page(page)
            return render(self.request, 'test.html', {'form':self.form_class, 'object_list':object_list, 'page_obj' = page_obj})

Как и в приведенном выше коде, ввод принимается через form_valid, постранично, а затем распыляется на тот же html-шаблон.

Результаты и пагинация также отображаются нормально, но если перейти на другую страницу, например ?page=2, то отображается только основной шаблон без всех результатов.

Есть ли способ постранично отобразить форму и результаты поиска в одном шаблоне?

Почему вы использовали FormView? Пагинация поставляется с MultipleObjectMixin. Для простоты вы можете использовать ListView, а не FormView. ListView наследуется от MultipleObjectMixin.

Этот пример взят из docs:

from django.views.generic import ListView

from myapp.models import Contact

class ContactListView(ListView):
    paginate_by = 2
    model = Contact
Вернуться на верх