在不使用表单的情况下使用Django rest框架上载多个文件

在不使用表单的情况下使用Django rest框架上载多个文件,django,django-forms,django-rest-framework,django-views,Django,Django Forms,Django Rest Framework,Django Views,我正在尝试将多个文件从Postman发布到我的django应用程序。我没有使用表单,我的应用程序也没有UI方面。这是我的观点课 class FileUploader(APIView): ''' Rest API for FileUploader ''' permission_classes = (AllowAny,) parser_classes = (MultiPartParser, ) @csrf_exempt def post(se

我正在尝试将多个文件从Postman发布到我的django应用程序。我没有使用表单,我的应用程序也没有UI方面。这是我的观点课

class FileUploader(APIView):
    '''
    Rest API for FileUploader
    '''
    permission_classes = (AllowAny,)
    parser_classes = (MultiPartParser, )

    @csrf_exempt
    def post(self, request):
        retval = Response(request.data, status=status.HTTP_201_CREATED)
        logger.info('New post with the following data: {}'.format(request.data))
它这样说,“TypeError:init()缺少3个必需的位置参数:'META'、'input_data'和'upload_handlers'” 如果我使用FormView,我的帖子有三个键,两个代表文件,最后一个是字符串。在调试期间,我的请求没有字段数据,文件为空,帖子也没有任何信息。任何指点都将不胜感激。如果有帮助的话,我可以上传更多

这不是重复的,因为他可以上传多个文件,而我的没有上传任何文件。我正在努力弄清楚如何在请求中找到文件,因为它们不在那里,所以如何设置视图(而不是序列化)以接收多个文件


将上述代码更改为如下所示,并在请求中包含标题
'Content-Type':'multipart/form data'

class FileUploader(APIView):
    '''
    Rest API for FileUploader
    '''
    permission_classes = (AllowAny,)
    parser_classes = (MultiPartParser, )

    @csrf_exempt
    def post(self, request, *args, **kwargs):
        print(request.data)
        return Response({"message": "success"})
将视图类编写为

from rest_framework.views import APIView
from rest_framework.response import Response


class FileUploader(APIView):
    '''
    Rest API for FileUploader
    '''

    permission_classes = (AllowAny,)

    def post(self, request, *args, **kwargs):
        files_list = request.FILES
        data = request.data
        return Response(data={"files": "{} files uploaded".format(len(files_list)),
                              "data": "{} data included".format(len(data))})
并使用邮递员中的表单数据发送

可能重复的而且,您没有从视图中返回任何响应。我不关心根据请求创建模型,因此序列化不是问题的一部分,问题是物理POST请求。稍后在视图中,我返回201或a响应,具体取决于。我正在努力解决的问题是请求中包含了两个文件。添加了一个答案,请尝试。当我进行更改时,它没有显示“AttributeError:“NoneType”对象没有属性“decode”。“当我进行这些更改时,数据是一个字段,但长度为0,文件也为零。”。因此,响应为“{”文件“:“0文件已上载”,“数据“:“0数据已包含”}您是如何添加文件和数据的?屏幕截图请仅添加屏幕截图,标题为Key=Content-Type-Value=multipart/form-data删除标题,然后重试