I'm building APIs with django and I have been trying to implement filtering into the system but the filter option just brings back all the list. Below is my codes
view.py
from unicodedata import name
from django.shortcuts import render, get_object_or_404
from rest_framework import generics, status
from rest_framework.response import Response
from django_filters.rest_framework import DjangoFilterBackend
from .serializers import DailySalesSerializer, DailySalesCreateSerializer
from .models import DailySales
# Create your views here.
class DailySalesListView(generics.GenericAPIView):
serializer_class = DailySalesSerializer
queryset = DailySales.objects.all()
name = 'Daily Sales List'
filter_backends = (DjangoFilterBackend,)
filterset_fields = ('id', 'customername','havepaid', 'datesold', 'itemsold')
def get(self, request):
sales = DailySales.objects.all()
serializer = self.serializer_class(instance=sales, many=True)
return Response(data=serializer.data, status=status.HTTP_200_OK)
I have also added django_filters to my settings.py
You are not using filters if you overwrite get response like that, you should change
to
or even better remove your get method and inherit from
ListModelMixin
so that Django will do listing and serializing for you