You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
1.0 KiB
30 lines
1.0 KiB
2 years ago
|
from rest_framework import viewsets
|
||
|
from rest_framework import mixins
|
||
|
from django_filters.rest_framework import DjangoFilterBackend
|
||
|
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
|
||
|
|
||
|
|
||
|
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')
|