ModelViewSet里的过滤、排序、分页、序列化设置

views:

# 导包排序的包
from rest_framework.filters import OrderingFilter
# 导包过滤的包
from django_filters.rest_framework import DjangoFilterBackend

from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.pagination import PageNumberPagination
from rest_framework.viewsets import ModelViewSet

class StandardPageNumberPagination(PageNumberPagination):
page_size_query_param = 'page_num'
max_page_size = 3

class UserModelViewSet(ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSer
    pagination_class = StandardPageNumberPagination
    filter_backends = (OrderingFilter, DjangoFilterBackend)
    filter_fields = ['name', 'age', "sex"]
    ordering_fields = ('age')

serializers:

class UserSer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = "__all__" # 序列化的时候显示哪些字段
        depth = 1 # 外键的序列化

 

posted @ 2020-10-28 19:04  做你的猫231  阅读(207)  评论(0)    收藏  举报