如何在Django的formview中应用分页?

How to apply paging in Django's formview?

我的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