我正在用django构建api,我一直在尝试实现过滤到系统中,但过滤器选项只是带回了所有的列表。下面是我的代码
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)
我还添加了django_filters到我的settings.py
你没有使用过滤器如果你像那样覆盖get响应,你应该更改
sales = DailySales.objects.all()
sales = self.filter_queryset(self.get_queryset())
或者删除你的get方法,从ListModelMixin
继承,这样Django会为你做清单和序列化