View Demo
from django.shortcuts import render from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status from rest_framework.parsers import JSONParser from rest_framework import mixins, generics from rest_framework.generics import ListAPIView from rest_framework.pagination import PageNumberPagination from goods.models import Goods, GoodsCategory from goods.serializer import GoodsSerializer, CategorySerializer from rest_framework import viewsets from django_filters.rest_framework import DjangoFilterBackend import django_filters from rest_framework import filters class GoodsList(mixins.ListModelMixin, viewsets.GenericViewSet): class GoodsPagination(PageNumberPagination): page_size = 2 page_size_query_param = 'pageSize' page_query_param = 'p' max_page_size = 100 queryset = Goods.objects.all() # 不能切片后再过滤,例如:Goods.objects.all()[:10] serializer_class = GoodsSerializer pagination_class = GoodsPagination filter_backends = (DjangoFilterBackend,filters.SearchFilter,filters.OrderingFilter) search_fields = ('=name',) # 文档:https://www.django-rest-framework.org/api-guide/filtering/#searchfilter ordering_fields=('name',) # filter_fields = ('name',) #逗号必加,缺点无法模糊查询 # filterset_class = GoodsFilter
test