Python Django Rest框架出现错误:您没有执行此操作的权限
我按照教程检查Python Django Rest框架出现错误:您没有执行此操作的权限,python,django,django-rest-framework,Python,Django,Django Rest Framework,我按照教程检查api\u key头是否存在。该示例似乎用于身份验证,我无法确定如何修复它。当我访问API端点时,我得到一个错误: { "detail": "You do not have permission to perform this action." } permisson.py 从rest\u framework.permissions导入BasePermission class Check_API_KEY_Auth(BasePermi
api\u key
头是否存在。该示例似乎用于身份验证,我无法确定如何修复它。当我访问API端点时,我得到一个错误:
{
"detail": "You do not have permission to perform this action."
}
permisson.py
从rest\u framework.permissions导入BasePermission
class Check_API_KEY_Auth(BasePermission):
def has_permission(self, request, view):
# API_KEY should be in request headers to authenticate requests
api_key_secret = request.META.get('API_KEY')
if 'api_key' in request.headers:
api_key_secret = request.headers['api_key']
if api_key_secret == 'adnan':
print('FOUND')
return api_key_secret == 'you'
views.py
from rest_framework import viewsets
from .models import App
from .serializers import AppSerializer
from rest_framework.decorators import action
from rest_framework.response import Response
from .permissions import Check_API_KEY_Auth
class AppView(viewsets.ModelViewSet):
queryset = App.objects.all()
permission_classes = (Check_API_KEY_Auth,)
serializer_class = AppSerializer
def show(self, request, format=None):
content = {
'status': 'request was permitted'
}
return Response(content)
我不需要用户身份验证,只需检查API密钥是否存在,如果是,则查询表中的db并返回结果。如果
权限类中的所有权限都返回True
,则django rest framework授予权限,如果列表中的任何一个返回False
,则权限被拒绝
查看Check\u API\u KEY\u Auth
类后,返回True
的唯一情况是URL中的API\u KEY=you
,否则它将始终返回False
,这就是为什么URL中没有API\u KEY
时,它会给出此错误消息的原因
本教程中的一个是最短的,它将api\u key\u secret==settings.api\u key\u secret
的输出直接返回到视图,该视图只返回True
或False