From c6178a334ae021a662697981b2dd0ddf89a4002b Mon Sep 17 00:00:00 2001 From: Luisa Date: Fri, 24 Apr 2026 10:51:59 -0300 Subject: [PATCH] feat: adding pagination --- apps/properties/pagination.py | 6 ++++++ apps/properties/views/property_views.py | 4 +++- config/settings.py | 4 +++- 3 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 apps/properties/pagination.py diff --git a/apps/properties/pagination.py b/apps/properties/pagination.py new file mode 100644 index 0000000..17abb5f --- /dev/null +++ b/apps/properties/pagination.py @@ -0,0 +1,6 @@ +from rest_framework.pagination import PageNumberPagination + +class HomeMatchPagination(PageNumberPagination): + page_size = 20 + max_page_size = 100 + page_query_param = "page_size" diff --git a/apps/properties/views/property_views.py b/apps/properties/views/property_views.py index 872c6aa..5615092 100644 --- a/apps/properties/views/property_views.py +++ b/apps/properties/views/property_views.py @@ -8,7 +8,7 @@ from apps.properties.serializers.property_serializers import PropertiesWriteSerializer, PropertiesReadSerializer from apps.properties.serializers.reviews_serializers import ReviewsSerializer from apps.properties.permissions import IsAdvertiser, IsReviewOwner, IsPropertyOwner - +from apps.properties.pagination import HomeMatchPagination # C -> Create # R -> Read # U -> Update @@ -16,6 +16,7 @@ class CreateListReviewPropertyView(generics.ListCreateAPIView): serializer_class = ReviewsSerializer + pagination_class = HomeMatchPagination def get_permissions(self): if self.request.method == "GET": @@ -49,6 +50,7 @@ def get_permissions(self): class CreateListPropertyView(generics.ListCreateAPIView): queryset = Properties.objects.all().order_by("created_at") filterset_class = PropertiesFilters + pagination_class = HomeMatchPagination def get_serializer_class(self): if self.request.method == "POST": diff --git a/config/settings.py b/config/settings.py index dcf6702..ee37495 100644 --- a/config/settings.py +++ b/config/settings.py @@ -103,7 +103,9 @@ "DEFAULT_PERMISSION_CLASSES": ( "rest_framework.permissions.IsAuthenticatedOrReadOnly", ), - "DEFAULT_FILTER_BACKENDS": ["django_filters.rest_framework.DjangoFilterBackend"] + "DEFAULT_FILTER_BACKENDS": ["django_filters.rest_framework.DjangoFilterBackend"], + "DEFAULT_PAGINATION_CLASS": "apps.properties.pagination.HomeMatchPagination", + "PAGE_SIZE": 20 } SIMPLE_JWT = {