Views 代码 导包

from django.shortcuts import render
 
# Create your views here.
 
 
from django.http import HttpResponse
from django_filters.rest_framework import DjangoFilterBackend
 
from rest_framework import viewsets
from rest_framework.authentication import BaseAuthentication,SessionAuthentication
from rest_framework.decorators import action
from rest_framework.decorators import action
from rest_framework.filters import OrderingFilter
 
from rest_framework.permissions import AllowAny,IsAdminUser,IsAuthenticated,IsAuthenticatedOrReadOnly
from rest_framework.response import Response
from rest_framework.throttling import UserRateThrottle
from rest_framework.pagination import PageNumberPagination
from rest_framework.views import APIView
from rest_framework.permissions import BasePermission,SAFE_METHODS
from rest_framework.viewsets import ModelViewSet
 
from user.models import User
from user.serializers import UserSerializer
 
 
def index(request):
return HttpResponse("hello")
 
 
class PageNum(PageNumberPagination):
page_size_query_param = 'page_size'
max_page_size = 2
 
class MyPermission(BasePermission):
def has_permission(self, request, view):
print(view.kwargs.get('pk'),request.user.id)
print(request)
 
if request.user.is_superuser:
return True
elif view.kwargs.get('pk') ==str(request.user.id):
return True
return False
def has_object_permission(self, request, view, obj):
if request.user.id==obj.id:
return True
return False
 
 
 
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
 
pagination_class = PageNum
 
throttle_classes = [UserRateThrottle]
 
filter_backends = (DjangoFilterBackend,OrderingFilter)
 
ordering_fields=('username','phone','id')
filter_fields=('username','phone','is_active')
 

posted @ 2020-09-27 21:49  小虾米爱吃鱼  阅读(146)  评论(0编辑  收藏  举报