Commit b64fcdc9 authored by impfundev's avatar impfundev

feat: api search books, members, librarians, book loans

parent 041514f6
from rest_framework.filters import SearchFilter
from rest_framework.viewsets import ModelViewSet from rest_framework.viewsets import ModelViewSet
from rest_framework.permissions import IsAuthenticated from rest_framework.permissions import IsAuthenticated
from django_filters.rest_framework import DjangoFilterBackend from django_filters.rest_framework import DjangoFilterBackend
...@@ -25,30 +26,37 @@ class UserViewSet(ModelViewSet): ...@@ -25,30 +26,37 @@ class UserViewSet(ModelViewSet):
class BookViewSet(ModelViewSet): class BookViewSet(ModelViewSet):
queryset = Book.objects.all().order_by("created_at") queryset = Book.objects.all().order_by("created_at")
serializer_class = BookSerializer serializer_class = BookSerializer
filter_backends = [DjangoFilterBackend] filter_backends = [DjangoFilterBackend, SearchFilter]
filterset_fields = ["title", "description"] filterset_fields = ["title", "description"]
search_fields = filterset_fields
class MemberViewSet(ModelViewSet): class MemberViewSet(ModelViewSet):
queryset = Members.objects.all().order_by("created_at") queryset = Members.objects.all().order_by("created_at")
serializer_class = MemberSerializer serializer_class = MemberSerializer
filter_backends = [DjangoFilterBackend] filter_backends = [DjangoFilterBackend, SearchFilter]
filterset_fields = ["name", "email"] filterset_fields = ["name", "email"]
search_fields = filterset_fields
class LibrarianViewSet(ModelViewSet): class LibrarianViewSet(ModelViewSet):
queryset = Librarians.objects.all().order_by("created_at") queryset = Librarians.objects.all().order_by("created_at")
serializer_class = LibrarianSerializer serializer_class = LibrarianSerializer
filter_backends = [DjangoFilterBackend] filter_backends = [DjangoFilterBackend, SearchFilter]
filterset_fields = ["name", "email"] filterset_fields = ["name", "email"]
search_fields = filterset_fields
class BookLoanViewSet(ModelViewSet): class BookLoanViewSet(ModelViewSet):
queryset = BookLoans.objects.all().order_by("created_at") queryset = BookLoans.objects.all().order_by("created_at")
serializer_class = BookLoanSerializer serializer_class = BookLoanSerializer
filter_backends = [DjangoFilterBackend] filter_backends = [DjangoFilterBackend, SearchFilter]
filterset_fields = [ filterset_fields = [
"book__title",
"member__name",
"librarians__name",
"loan_date", "loan_date",
"due_date", "due_date",
"return_date", "return_date",
] ]
search_fields = filterset_fields
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment