【问题标题】:How to apply paging in Django's formview?如何在 Django 的表单视图中应用分页?
【发布时间】:2021-11-19 08:06:45
【问题描述】:

我的观点.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这样的另一个页面,则只显示基本模板,没有所有结果。

有没有办法在一个模板中对表单和搜索结果进行分页?

【问题讨论】:

    标签: django pagination formview


    【解决方案1】:

    你为什么使用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
    

    【讨论】:

    • 我是第一次显示表单,使用表单提交的key,在最下方显示结果。当我使用 listview 时,表单会显示,但提交不起作用是什么问题?
    猜你喜欢
    • 2020-06-18
    • 2015-10-04
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多