Python django rest框架:通用视图和基于方法的权限

Python django rest框架:通用视图和基于方法的权限,python,django-rest-framework,Python,Django Rest Framework,是否可以仅对泛型视图的一个方法应用身份验证?我有一个通用的ListCreateAPIView,我想对get方法应用身份验证,并且只在IsAuthenticated时授予权限,但是让post方法响应而不进行身份验证 在基于函数的视图中,通过向每个方法添加一个装饰器,可以很容易地完成这项工作。但我不知道如何使用基于类的视图来完成此操作。一种方法是编写自定义权限: from rest_framework.permissions import IsAuthenticated from rest_fram

是否可以仅对泛型视图的一个方法应用身份验证?我有一个通用的
ListCreateAPIView
,我想对
get
方法应用身份验证,并且只在
IsAuthenticated
时授予权限,但是让
post
方法响应而不进行身份验证


在基于函数的视图中,通过向每个方法添加一个装饰器,可以很容易地完成这项工作。但我不知道如何使用基于类的视图来完成此操作。

一种方法是编写自定义权限:

from rest_framework.permissions import IsAuthenticated
from rest_framework import generics

class IsAuthenticatedNotPost(IsAuthenticated):
    def has_permission(self, request, view):
        if request.method == 'POST':
            return True
        return super(IsAuthenticatedNotPost, self).has_permission(request, view)

class SomeView(generics.ListCreateAPIView):
    permission_classes = (IsAuthenticatedNotPost, )

我正在考虑覆盖泛型视图上的
执行\u身份验证
,并检查那里的
请求.method
。但这很酷,谢谢。