нет файла для загрузки в остальные рамки django - PullRequest
0 голосов
/ 01 марта 2019

Обновление: ни один из 2 ответов ниже не работает.Когда я использую request.FILES ["file"], я получаю ошибку ключа.

Используя django rest framework, я пытаюсь загрузить файл 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 === Нет

enter image description here

Ответы [ 3 ]

0 голосов
/ 01 марта 2019

Вы можете попробовать это

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)

надеюсь, что это поможет

для более подробной информации см. это

0 голосов
/ 11 апреля 2019

Проблема не с кодом, а с почтальоном.Я не мог понять, как использовать почтальона, и никто не предлагал ничего о почтальоне.так что я только что проверил это с помощью команды curl. Это прекрасно работает ...

curl -XPOST -i -F file=@dir/to/test.pdf http://127.0.0.1:8000/api/upload_pdf  
0 голосов
/ 01 марта 2019

В Django все загруженные файлы будут в request.FILES, а не request.POST.Вот почему вы не видите этот файл в данных поста.

...