Как получить csv-файл в запросе в django?

#python #django #django-rest-framework

Вопрос:

Я хочу получить csv-файл в сообщении(запросе) в django.

 file = request.FILES['file'] # is this way is correct to get csv file
 

Я пробовал код выше, но получил эту ошибку:

 UnsupportedMediaType: Unsupported media type "text/csv" in request.
 

Пожалуйста, помогите, я застрял на два дня.

 def post(self, request, version_id):
    """
    upload csv file to s3
    params: request (csv file)
    """
    response = {"success": True, "data": {}, "message": ""}
    file = request.FILES['file'] #is this way is correct to get csv file
    is_valid, message = self.validate_file(file) #this function for check file is csv or not
    if is_valid:
        ImageUpload = ImageUploader()
        try:
            response = ImageUpload.upload_file(file)
        except Exception as e:
            response.update({"success": False, "message": e})    
    else:
        response.update({"message": message, "success": False})
    return Response(response, 200)
 

Комментарии:

1. Вы, должно быть, используете а form . Пожалуйста, также опубликуйте HTML-код.

2. @Ram Я хочу загрузить файл CSV в s3(AWS), поэтому сначала извлеките файл csv, и функция загрузки работает правильно, если я запускаю прямую функцию, указанную с указанием пути к файлу, но когда я использую запрос. ФАЙЛЫ , поэтому возникает ошибка

3. Как вы загружаете ? Должна быть какая-то веб-страница, на которую вы загружаете/заполняете данные. Опубликуйте этот HTML-код.

4. @Озу кто-то еще работает над HTML. Я недавно стал бэкенд-разработчиком. задача состоит в том, чтобы загрузить csv-файл из интерфейса(панели мониторинга). и получите этот файл и напрямую загрузите его на сервер s3. это задача и задача внешнего интерфейса, выполняемая другим человеком.

5. Попробуйте распечатать request.FILES и посмотреть, есть ли в нем файл, который вы ищете. Прочитайте это для получения дополнительной информации.