上载到django rest框架时没有文件

上载到django rest框架时没有文件,django,python-3.x,django-rest-framework,postman,Django,Python 3.x,Django Rest Framework,Postman,更新:以下两个答案均无效。当我使用request.FILES[file]时,我得到一个密钥错误 使用django rest框架,我试图上传一个pdf文件,但是请求进来了,没有文件。我正试图从邮递员那里上传文件。get请求有效。非常感谢您的帮助 这是我的看法 @api_view(['PUT','GET']) def upload_pdf(request): if request.method == 'PUT': myfile = request.POST.get('file

更新:以下两个答案均无效。当我使用request.FILES[file]时,我得到一个密钥错误

使用django rest框架,我试图上传一个pdf文件,但是请求进来了,没有文件。我正试图从邮递员那里上传文件。get请求有效。非常感谢您的帮助

这是我的看法

@api_view(['PUT','GET'])
def upload_pdf(request):
    if request.method == 'PUT':
        myfile = request.POST.get('file')
        print("myfile === {}".format(myfile))

    if request.method == 'GET':
        return Response({"message": "Hey there at least this works!"})
输出:myfile==无


在Django中,所有上载的文件都将以request.files结束,而不是request.POST结束。这就是为什么在post数据中看不到该文件的原因。

在Django中,所有上载的文件最终都会出现在request.files中,而不是request.post中。这就是为什么在post数据中看不到该文件的原因。

您可以试试这个

from rest_framework.parsers import FileUploadParser

class Fileupload(APIView):
   parser_class = (FileUploadParser,)
   def post(self, request, format=None):
     file = request.FILES['file']
     if 'file' not in request.data:
          raise ParseError("Empty content")
     model_obj = YourModel.objects.get_or_create()

     model_obj.myfile.save(file.name, file, save=True)
希望能有帮助

有关更多详细信息,请参阅。您可以试试这个

from rest_framework.parsers import FileUploadParser

class Fileupload(APIView):
   parser_class = (FileUploadParser,)
   def post(self, request, format=None):
     file = request.FILES['file']
     if 'file' not in request.data:
          raise ParseError("Empty content")
     model_obj = YourModel.objects.get_or_create()

     model_obj.myfile.save(file.name, file, save=True)
希望能有帮助


有关更多详细信息,请参阅

问题不在于代码,而在于邮递员。 我不知道如何使用邮递员,也没有人对邮递员提出任何建议。 所以我用curl命令测试了它 这个很好用

curl -XPOST -i -F file=@dir/to/test.pdf http://127.0.0.1:8000/api/upload_pdf  

问题不在于代码,而在于邮递员。 我不知道如何使用邮递员,也没有人对邮递员提出任何建议。 所以我用curl命令测试了它 这个很好用

curl -XPOST -i -F file=@dir/to/test.pdf http://127.0.0.1:8000/api/upload_pdf  

谢谢@GwynBleiD file=request.FILES['file']给我一个关键错误还有其他想法@GwynBleidD吗?谢谢@GwynBleiD file=request.FILES['file']给我一个关键错误还有其他想法@GwynBleidD吗?嗨,谢谢,但是file=request.FILES['file']给我一个关键错误error@user3250052你需要在你的密钥中传递文件。我的密钥中确实有文件。我从下拉菜单中选择了它。只有当你将鼠标指针悬停在我的上方时,你才能看到它。谢谢,但是file=request.FILES['file']给了我一个键error@user3250052你需要在你的密钥中传递文件。我的密钥中确实有文件。我从下拉菜单中选择了它。只有将鼠标指针悬停在它上面时,才能看到它