Thanks to visit codestin.com
Credit goes to github.com

Skip to content

PageNumberPagination.get_page_number returns 1 when page_query_param == 0  #9533

Closed
@dishn

Description

@dishn

version 3.15.2
python 3.10.14

Not sure if this is expected behavior, but when page_query_param == 0, the page_number variable sets to 1 in get_page_number:

    def get_page_number(self, request, paginator):
        page_number = request.query_params.get(self.page_query_param) or 1
        if page_number in self.last_page_strings:
            page_number = paginator.num_pages
        return page_number

where:

>>> page_number = request.query_params.get(self.page_query_param) or 1
>>> page_number = 0 or 1
>>> page_number = 1

I believe the original intention is to check empty string not value 0: #8578

I would consider the get_page_number function to allow value 0:

    def get_page_number(self, request, paginator):
        """
        Overrides the get_page_number method to handle case where page=0
        """
        param_numer = request.query_params.get(self.page_query_param)
        return 0 if param_numer == 0 else super().get_page_number(request, paginator)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions