Кажется, вы не передаете email_id
- можете ли вы напечатать его значение в upload.py
перед публикацией?
Чтобы быть в безопасности, укажите значение по умолчанию в вашем views.py
:
video_file = self.request.data.get("media_file", None)
user_email_id = self.request.data.get("email_id", None)
Замените None
на то, что вы хотите по умолчанию, если поле отсутствует.
ОБНОВЛЕНИЕ : Конечно, вы столкнетесь спроблема загрузки содержимого файла так, как вы делаете.Чтобы загрузить фактический файл, вы должны использовать структуру files
в вашем вызове requests.post()
, например:
headers = {"Authorizarion": "auth/key"}
data = {"email_id": "email@email.com"}
files = {"media_file": open(video.file_path, "rb")}
response = requests.post("/api/url", headers=headers, data=data, files=files)
Затем на стороне Django вам нужно будет извлечь содержимое как:
def post(self, request):
video_file = request.FILES.get('media_file', None)
user_email_id = request.POST.get('email_id', None)
# you should probably validate video_file and user_email_id here
file_storage = FileSystemStorage()
saved_file_name = file_storage.save(str(uuid.uui`d4()), video_file)