python - Django - 'UserViewPermissionClass' 对象没有具有自定义权限的属性'authenticate'
问题描述
我正在尝试在基于类的视图中使用自定义权限。当我尝试运行我的一个视图时,我得到一个 WrappedAttributeError :'UserViewPermissionClass' object has no attribute 'authenticate'
这是我的自定义权限:
class UserViewPermissionClass(BasePermission):
def has_permission(self, request, view):
if request.method == 'GET':
return request.user.is_admin
elif request.method == 'POST':
return True
# default logic
class UserView(APIView):
authentication_classes = ( UserViewPermissionClass,)
这是我试图运行的基于类的视图:
class HandleUsers(UserView):
def get(self, request):
"""Only for admin"""
try:
users = User.objects.all()
except User.DoesNotExist():
return HttpResponse(status=404)
serializer = UserSerializer(users, many=True)
return Response(serializer.data)
def post(self, request):
"""For everyone"""
serializer = RegistrationSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
return Response(serializer.error)
这是我对休息框架的设置:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',
],
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.AllowAny',
],
}
在做了一些研究之后,我发现我的错误可能是由于我的 DEFAULT_PERMISSION_CLASSES。但是我看不到可能会阻塞的内容。
预先感谢您的帮助。
解决方案
更改authentication_classes=(UserViewPermissionClass,)
为permission_classes=(UserViewPermissionClass,)
推荐阅读
- swift - “AuthDataResult”类型的值没有成员“providerID”
- splunk - 使用 Splunk 调用多个 REST API
- java - 如何在不转换为字符串的情况下完成/修复附加持久性算法?
- python - 如何在 python 中迭代 JSON 子节点?
- c# - ASP.NET Core 发布和启动设置
- javascript - Firebase DB 的“读取”函数正在返回“Promise”
` 对象 - graphql - 当向其发送 graphql 查询时 Hasura 是如何工作的?
- c - 在 C 中,我打印字符串中最大回文的代码不是打印整个回文字符串吗?
- wordpress - 自定义永久链接帖子类型不包括后面的 -2
- dependencies - Build.gradle 错误评估项目':app'时出现问题