1
- from rest_framework import viewsets
1
+ from rest_framework import viewsets , filters
2
+ from rest_framework .permissions import IsAuthenticatedOrReadOnly
2
3
from apidemo .serializers import EmployeeSerializer , DepartmentSerializer
3
4
from apidemo .models import Employee ,Department
4
5
# Create your views here.
7
8
8
9
class EmployeeViewSet (viewsets .ModelViewSet ):
9
10
"""
10
- This viewset automatically provides 'CRUD' actions.
11
+ API endpoint that allows employees to be viewed or edited.
12
+ Supports filtering, searching, ordering, and pagination.
11
13
"""
12
14
queryset = Employee .objects .all ()
13
15
serializer_class = EmployeeSerializer
16
+ filter_backends = [filters .SearchFilter , filters .OrderingFilter ]
17
+ search_fields = ["first_name" , "last_name" , "department__title" ]
18
+ ordering_fields = ["first_name" , "last_name" , "birthdate" , "department__title" ]
19
+ permission_classes = [IsAuthenticatedOrReadOnly ]
14
20
15
21
16
22
17
23
class DeptViewSet (viewsets .ModelViewSet ):
18
24
"""
19
- This viewset automatically provides 'CRUD' actions.
25
+ API endpoint that allows departments to be viewed or edited.
26
+ Supports searching, ordering, and pagination.
20
27
"""
21
28
queryset = Department .objects .all ()
22
- serializer_class = DepartmentSerializer
29
+ serializer_class = DepartmentSerializer
30
+ filter_backends = [filters .SearchFilter , filters .OrderingFilter ]
31
+ search_fields = ["title" ]
32
+ ordering_fields = ["title" ]
33
+ permission_classes = [IsAuthenticatedOrReadOnly ]
0 commit comments