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
。但这很酷,谢谢。