ModelViewSet序列化,限流,排序…
from rest_framework import viewsets # 导包
class UserViewSet(viewsets.ModelViewSet):
'''
完成产品的增删改插
'''
queryset = User.objects.all()
serializer_class = UserSerializer # 优先使用 get_serializer_class 返回序列化器
# 认证:自定义认证类,自定义会覆盖全局配置
# authentication_classes=(BasiAuthention,SessionAuthentication)
# 2.权限: 自定义权限各类
# permission_classes = (MyPermission,)
# 3.分页:自定义分页器 覆盖全局配置
pagination_class = PageNum
# 4.限流 :自定义限流类
throttle_classes = [UserRateThrottle]
# 5.过滤 :指定过滤方法类,排序方法类,一个或多个
filter_backends = (DjangoFilterBackend,OrderingFilter) # 同时支持过滤和排序
# 5.1 指定排序字段,不设置,排序功能不生效
ordering_fields=('date_joined','id') # ?ordering=id
# 5.2 指定过滤字段,不设置,过滤功能不生效
filter_fields=('username','phone','is_active') # ? username=xx&phone=&is_active=true
# 根据不同的请求,获取不同序列化器
def get_serializer_class(self):
if self.action == 'unactived':
return UserUnActiveSerializer
else:
return UserSerializer