Плохой запрос Django выгрузка CSV по кускам

Я пытаюсь загрузить csv в конечную точку, используя Django. Этот csv не связан ни с какой моделью, он нужен только для запуска задачи celery.

Дело в том, что я получаю Bad Request и django не предоставляет мне никакой дополнительной информации.

Загрузка файла должна осуществляться частями, и код для загрузки следующий с использованием библиотеки запросов python

import os
import requests
import pdb

def read_in_chunks(file_object, chunk_size=1024):
  while True:
    data = file_object.read(chunk_size)
    if not data:
        break
    yield data

def main(file, URL):

  content_name = str(file)
  content_path = os.path.abspath(file)
  content_size = str(os.stat(content_path).st_size)
  f = open(content_path)

  index = 0
  offset = 0
  headers = {}

  for chunk in read_in_chunks(f):

    offset = index + len(chunk)
    headers['Content-Type'] = 'application/octet-stream'
    headers['Content-length'] = content_size
    headers['Content-Range'] = 'bytes %s-%s/%s' % (index, offset, content_size)
    index = offset
    file = {"file": chunk}
    try:
        
        r = requests.put(url, files=file, headers=headers)

    except Exception as e:
        print(str(e))

if __name__ == '__main__':
  url = 'http://127.0.0.1:8000/task/upload'
  main('test_upload.csv', URL)

И выполняется следующим образом:

python3  test_upload.py

Вот вид:

class TaskUploadView(APIView):
  def put(self, request):
    ## NOT TESTED CODE, SINCE IT DOES NOT REACH THIS POINT
    parser_classes = (FileUploadParser,)
    f = request.FILES['file']
    with open('test.csv', 'wb+') as destination: 
    
        for chunk in f.chunks():
            destination.write(chunk)
    return Response({"message": "Uploaded!"})
    

И всегда я получаю это в логах, но больше ничего...

Неправильный запрос: /task/upload "PUT /task/upload HTTP/1.1" 400 109

>

Другие конечные точки работают нормально, поэтому я не знаю, что может происходить.

Есть идеи, почему плохой запрос?

Вернуться на верх