# Django Rest Framework: LimitZeroNoResultsPagination custom pagination

When talking about `LimitOffsetPagination` in django rest framework, it handles `limit` as strictly positive integer only `(1,2,3,4.......)`. Whenever you send any `non positive numbers/negative numbers` including `zero (0)` to the `limit query` `LimitOffsetPagination` will ignore this limit value and will work with it's own customizable `default_limit` attribute which indeed can be customized using `PAGE_SIZE` settings for `REST_FRAMEWORK`

## Let's talk about my scenario
Whenever i send `limit=0` params for the pagination, it ignores this values and sends/returns me whole lot of data(according to `default_limit`). I wanted to change this behaviour of the `LimitOffsetPagination` class so that the pagination class return `empty data` i.e `zero data` when i send `limit=0` params

### so, lets customize the `LimitOffsetPagination` class 

```py
from rest_framework.pagination import LimitOffsetPagination, _positive_int

class LimitZeroNoResultsPagination(LimitOffsetPagination):
    def get_limit(self, request):
        if self.limit_query_param:
            try:
                return _positive_int(
                    request.query_params[self.limit_query_param],
                    strict=False,
                    cutoff=self.max_limit
                )
            except (KeyError, ValueError):
                pass

        return self.default_limit
``` 
If, you compare what we customized in this class then you can see we changed `strict=False` for the `_positive_int` function

Note: `_positive_int` is a private function, i do not promote using private func but in this case i needed it so please use this responsibly.

So, when you use this Pagination class for your API's and use `limit=0` then you will see this

![limit-zero-no-results-paginations.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1647056226646/d2RGAt-iC.png)

### Where do i use this ?
I use this `limit=0` whenever i want extra data from the API like the `total count` but don't want it's data

#### Tested on
- Django(3.0.3) and Django Rest Framework(3.11.0)
- Django(4.0.2) and Django Rest Framework(3.13.1)

