Skip to content

Commit e9266b1

Browse files
committed
Pagination added.
1 parent 2d1b904 commit e9266b1

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

src/api/views.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,18 @@
22
from rest_framework.viewsets import ModelViewSet
33

44
from .models import Class, Student, Teacher
5-
from .permissions import IsAdminOrReadOnly, IsSuperUserOrReadOnly, IsOwnerOrReadOnly
5+
from .permissions import IsSuperUserOrReadOnly, IsOwnerOrReadOnly
66
from .serializers import StudentSerializer, ClassSerializer, TeacherSerializer
77

88

9-
class IsAdminViewSet(ModelViewSet):
9+
class ProtectedViewSet(ModelViewSet):
1010
permission_classes = (
11-
IsAdminOrReadOnly,
11+
# IsAdminOrReadOnly,
12+
1213
)
1314
pagination_class = LimitOffsetPagination
15+
page_size_query_param = 'page'
16+
page_size = 1
1417

1518

1619
class IsSuperUserViewSet(ModelViewSet):
@@ -27,7 +30,7 @@ class IsOwnerViewSet(ModelViewSet):
2730
pagination_class = LimitOffsetPagination
2831

2932

30-
class StudentsViewSet(ModelViewSet):
33+
class StudentsViewSet(ProtectedViewSet):
3134
serializer_class = StudentSerializer
3235

3336
def get_queryset(self):
@@ -37,7 +40,7 @@ def get_queryset(self):
3740
return Student.objects.select_related('_class').get(pk=pk)
3841

3942

40-
class ClassViewSet(ModelViewSet):
43+
class ClassViewSet(ProtectedViewSet):
4144
serializer_class = ClassSerializer
4245

4346
def get_queryset(self):
@@ -47,7 +50,7 @@ def get_queryset(self):
4750
return Class.objects.filter(pk=pk)
4851

4952

50-
class TeacherViewSet(ModelViewSet):
53+
class TeacherViewSet(ProtectedViewSet):
5154
serializer_class = TeacherSerializer
5255

5356
def get_queryset(self):

src/core/settings.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,10 +122,16 @@
122122
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
123123

124124
REST_FRAMEWORK = {
125+
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination',
126+
'PAGE_SIZE': 20,
127+
125128
'DEFAULT_PERMISSION_CLASSES': ['rest_framework.permissions.IsAuthenticated'],
129+
126130
'DEFAULT_AUTHENTICATION_CLASSES': (
127131
'rest_framework_simplejwt.authentication.JWTAuthentication',
128-
)
132+
'rest_framework.authentication.SessionAuthentication',
133+
),
134+
129135
}
130136

131137
SIMPLE_JWT = {
@@ -166,4 +172,4 @@
166172
"TOKEN_BLACKLIST_SERIALIZER": "rest_framework_simplejwt.serializers.TokenBlacklistSerializer",
167173
"SLIDING_TOKEN_OBTAIN_SERIALIZER": "rest_framework_simplejwt.serializers.TokenObtainSlidingSerializer",
168174
"SLIDING_TOKEN_REFRESH_SERIALIZER": "rest_framework_simplejwt.serializers.TokenRefreshSlidingSerializer",
169-
}
175+
}

0 commit comments

Comments
 (0)