29 lines
901 B
Python
29 lines
901 B
Python
from rest_framework.generics import (
|
|
ListAPIView,
|
|
RetrieveAPIView,
|
|
CreateAPIView
|
|
)
|
|
|
|
from rest_framework.permissions import IsAuthenticated
|
|
from rest_framework.filters import SearchFilter, OrderingFilter
|
|
from django.db.models import Q
|
|
from ..models import Mosquito
|
|
from .serializers import MosqListSerializer
|
|
|
|
|
|
class MosquitoListAPIView(ListAPIView):
|
|
serializer_class = MosqListSerializer
|
|
filter_backends = [SearchFilter, OrderingFilter]
|
|
search_fields = ['name', 'device_id', 'region']
|
|
|
|
def get_queryset(self, *args, **kwargs):
|
|
queryset_list = Mosquito.objects.all()
|
|
query = self.request.GET.get('q')
|
|
if query:
|
|
queryset_list = queryset_list.filter(
|
|
Q(name__icontains=query) |
|
|
Q(device_id__icontains=query) |
|
|
Q(region__icontains=query)
|
|
).distinct()
|
|
return queryset_list
|