[[Errno 2]] Нет такого файла или каталога: '/tmp/tmp1d93dhp7.upload.mp4' в Django

Я перевел разработку своего сайта на использование Docker. Недавно я изменил расположение медиафайлов, когда возникла эта ошибка: [Errno 2] No such file or directory: '/tmp/tmp1d93dhp7.upload.mp4' in Django. Пока что я проверил, нет ли опечаток в коде расположения файлов в настройках, представлениях и моделях.

Сайт работает по принципу простого хранения загруженных пользователем медиафайлов в папке media. Загруженные файлы файлы хранятся в папке media/human.

Вот соответствующий код:

views.py:

...
                fs = FileSystemStorage()
                filename = fs.save(uploaded_file.name, uploaded_file)
                uploaded_file_path = fs.path(filename)
                file_type = mimetypes.guess_type(uploaded_file_path)

                request.session['uploaded_file_path'] = uploaded_file_path
                
                
                user_doc, created = RequirementsChat.objects.get_or_create(id=user_id)
                

            
                files = request.FILES.getlist('file')
                for file in files:
                    
                    user_doc, created = RequirementsChat.objects.get_or_create(id=user_id)
                    uploaded_file = UploadedFile(input_file=file, requirements_chat=user_doc, chat_id = user_id)
                    uploaded_file.save()
                user_doc.save()
...

Похоже, что ошибка вызвана строкой uploaded_file.save().

models.py:

class RequirementsChat(models.Model):
    id = models.CharField(primary_key=True, max_length=40)
    alias = models.CharField(max_length=20, blank=True, null=True)
    email = models.CharField(max_length=100, blank=True, null=True)
    language = models.CharField(max_length=10, blank=True, null=True)
    due_date = models.CharField(max_length=10, blank=True, null=True)
    subtitle_type = models.CharField(max_length=10, blank=True, null=True)
    transcript_file_type = models.CharField(max_length=10, blank=True, null=True)
    additional_requirements = models.TextField(max_length=500, blank=True, null=True)
    date = models.DateTimeField(auto_now_add=True, blank=True, null=True)
    url = models.CharField(max_length=250, blank=True, null=True)
    task_completed = models.BooleanField(default=False)
    
class UploadedFile(models.Model):
    input_file = models.FileField(upload_to='human_upload/')#new
    chat_id = models.CharField(max_length=40, null= True)
    requirements_chat = models.ForeignKey(RequirementsChat, on_delete=models.CASCADE, related_name='uploaded_files', null=True)

settings.py:

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql",
        "NAME": "db1",
        "USER": "postgres",
        "PASSWORD": "postgres",
        "HOST": "db", # set in docker-compose.yml
        "PORT": 5432, # default postgres port
    }
}   

MEDIA_URL='/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
Вернуться на верх