Я пытаюсь получить экранный список для видео автоматически при его загрузке. Но когда я создаю видео экземпляр, я получаю:«Нет такого файла каталога» для загружаемого файла
OSError at /admin/videos/video/add/
[Errno 2] No such file or directory
Я не могу понять, почему я получаю эту ошибку, потому что файл находится там.
Вот модель:
class Video(models.Model):
file = models.FileField(upload_to='videos/videos')
screenlist = models.ImageField(upload_to='videos/screenlists', editable=False)
def save(self, force_insert=False, force_update=False, using=None,
update_fields=None):
if self.pk is None:
self.file.save(self.file.name, self.file, save=False)
screenlist_path = get_screenlist(self.file.path.encode('utf-8'))
self.screenlist = File(open(screenlist_path))
video_info = get_video_info(self.file)
self.duration = get_duration(video_info)
super(Video, self).save(force_insert, force_update, using, update_fields)
Вот строка в get_screenlist метод, при котором происходит исключение:
info = subprocess.check_output([
'ffprobe', '-loglevel', 'error', '-show_format',
'-show_streams', path, '-print_format', 'json'],
stderr=subprocess.STDOUT
)
Можете ли вы выяснить, что точный каталог не может быть найденный? Переменная пути? – sergzach
Да, и когда я использую тот же путь для функции get_screenlist в оболочке django (не внутри метода сохранения), все работает нормально. –
Вывести значение переменной пути. Вероятно, это неверно. – sergzach