全局配置过滤器
# 全局配置过滤器
REST_FRAMEWORK = {
'DEFAULT_FILTER_BACKENDS':
('django_filters.rest_framework.DjangoFilterBackend', # 过滤器
'rest_framework.filters.OrderingFilter',), # 排序
'DEFAULT_PAGINATION_CLASS': # 分页
'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 3 # 每⻚数⽬
}
# 导包
from django.shortcuts import render
from rest_framework.viewsets import ModelViewSet
from app01 import models as dmlmodel
from app03 import sers as dm3ser
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.filters import OrderingFilter
from rest_framework.pagination import PageNumberPagination
# 过滤器
class UserModelView(ModelViewSet):
queryset = dmlmodel.User.objects.all()
serializer_class = dm3ser.UserSer
filter_backends = [DjangoFilterBackend] # 申明配置过滤器
filter_fields = ('username','age','home')
# 排序
class UserModelView(ModelViewSet):
queryset = dmlmodel.User.objects.all()
serializer_class = dm3ser.UserSer
filter_backends = [OrderingFilter] # 申明配置排序过滤器
ordering_fields = ('age','hight')
# 分页
class MyPage(PageNumberPagination):
page_size_query_param = 'max_page'
page_query_param = 'page'
class UserModelView(ModelViewSet):
queryset = dmlmodel.User.objects.all()
serializer_class = dm3ser.UserSer
pagination_class = MyPage

浙公网安备 33010602011771号