我正在使用 Django 和 Django-Rest-Framework 为一个小型学校相关项目编写 API。我正在尝试找出权限。
我正在使用 APIView 作为我的视图,并且希望为每个处理程序方法设置不同的权限,而无需编写更多视图。
这是我对博客模块的看法之一:
(此视图用于/posts/)
from .serializers import *
from django.db.models import Case, When
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.decorators import permission_classes
from rest_framework import status, permissions
# Create your views here.
class PostList(APIView):
"""
API Endpoint to List Posts
METHODS: GET, POST
"""
@permission_classes([permissions.AllowAny,])
def get(self, request, format=None):
posts = Post.objects.all()
serializer = PostSerializer(posts, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)
@permission_classes([permissions.IsAuthenticated])
def post(self, request, format=None):
serializer = PostCreationSerializer(data=request.data)
if …Run Code Online (Sandbox Code Playgroud)