Dynamic pagination using Generic ListView

前端 未结 1 807
离开以前
离开以前 2021-01-02 05:05

I have a requirement that a user should be able to choose how many items per page he wants to see in a list of assistants. I am using a generic ListView in Django 1.4.

1条回答
  •  长发绾君心
    2021-01-02 05:22

    I just recently had to do this. You can override the get_paginate_by function to grab a query string parameter. Here's a basic example.

    Class AssistantList(ListView):
        template_name = "register/assistant_list.html"
        context_object_name = 'assistant_list'
        paginate_by = 25
    
        def get_paginate_by(self, queryset):
            """
            Paginate by specified value in querystring, or use default class property value.
            """
            return self.request.GET.get('paginate_by', self.paginate_by)
    

    Then in our html we have a dropdown selection where the user can choose the number of items to view.

    We added some javascript to make it auto-submit and you'll want to pass the paginate_by through to the context so you can make sure it continues to get passed from page to page.

    0 讨论(0)
提交回复
热议问题