|
|
|
from rest_framework import viewsets
|
|
|
|
from rest_framework import mixins
|
|
|
|
from django_filters.rest_framework import DjangoFilterBackend
|
|
|
|
from django_filters import rest_framework
|
|
|
|
from rest_framework import filters
|
|
|
|
|
|
|
|
from apps.goods.models import Goods
|
|
|
|
from apps.goods.serializers import GoodsSerializers
|
|
|
|
from common.mypagination import MyPagination
|
|
|
|
from common.myfilter import MyFilter
|
|
|
|
from common.mymodelviewset import MyModelViewSet
|
|
|
|
|
|
|
|
|
|
|
|
class GoodsViewSet(mixins.ListModelMixin,
|
|
|
|
mixins.RetrieveModelMixin,
|
|
|
|
mixins.CreateModelMixin,
|
|
|
|
mixins.UpdateModelMixin,
|
|
|
|
mixins.DestroyModelMixin,
|
|
|
|
viewsets.GenericViewSet):
|
|
|
|
queryset = Goods.objects.all()
|
|
|
|
serializer_class = GoodsSerializers
|
|
|
|
# 分页
|
|
|
|
# pagination_class = MyPagination #针对viewset的分页设置,也可以走全局
|
|
|
|
# 筛选
|
|
|
|
filter_backends = (DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter)
|
|
|
|
# filter_backends = (DjangoFilterBackend,)
|
|
|
|
filterset_class = MyFilter
|
|
|
|
# 搜索
|
|
|
|
search_fields = ('name', 'price')
|
|
|
|
# 排序
|
|
|
|
ordering_fields = ('id', 'name', 'price')
|
|
|
|
|
|
|
|
|
|
|
|
class GoodsDetailViewSet(viewsets.ReadOnlyModelViewSet):
|
|
|
|
queryset = Goods.objects.all()
|
|
|
|
serializer_class = GoodsSerializers
|
|
|
|
|
|
|
|
|
|
|
|
class GoodsViewSetCustom(MyModelViewSet, viewsets.GenericViewSet):
|
|
|
|
queryset = Goods.objects.all()
|
|
|
|
serializer_class = GoodsSerializers
|
|
|
|
pagination_class = MyPagination
|
|
|
|
filter_backends = (DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter)
|
|
|
|
filterset_class = MyFilter
|
|
|
|
search_fields = ('name', 'price')
|
|
|
|
ordering_fields = ('id', 'name', 'price')
|