【发布时间】:2014-03-31 09:44:26
【问题描述】:
我正在使用 DjangoRestFramework 来制作 API。目前我有 OAuth2 身份验证工作,这意味着我可以生成一个有效的访问令牌来使用 API。
如何上传用户文件?我需要上传一个文件并将其与上传它的用户相关联。
我目前正在尝试这样做
api/views.py:
class FileUploadView(APIView):
parser_classes = (FileUploadParser,)
def put(self, request, filename, format=None):
file_obj = request.FILES['file']
# do stuff
return Response(status=204)
api/urls.py 包含这一行:
url(r'^files/', 'api.views.FileUploadView'),
但是当我尝试上传文件时,我收到一条错误消息:
'CSRF verification failed. Request aborted'
'Reason given for failure: CSRF cookie not set'
当我尝试这个 curl 命令时:
curl -XPUT http://localhost:8000/files/ -H 'Authorization: Bearer some_access_token' -F filedata=@localfile.txt
这是我的 REST_FRAMEWORK 默认值:
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAdminUser',),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.OAuth2Authentication',
)
}
【问题讨论】:
标签: python django oauth oauth-2.0 django-rest-framework