Что такое ваш в settings.py
MEDIA_ROOT
? С обратной стороны, кажется, вы установили MEDIA_ROOT
в /static/
.
Эта ошибка возникает с тех пор, как Django пытается получить доступ к /static/
, к которому у него нет доступа. Поместите абсолютный путь для MEDIA_ROOT
как C:/Documents/static/
и дайте полные разрешения Django для доступа к этому каталогу.
Это должно решить вашу проблему.
Добавление: Так как ваш MEDIA_ROOT
, кажется, хорошо, я предполагаю, что вы используете MEDIA_URL
для удаления файла вместо MEDIA_ROOT
. Действительно, из-за ошибки кажется, что Django пытался получить доступ к /static/files/8.nzb
и был лишен доступа. Очевидно, /static/
- ваш MEDIA_URL
, а не ваш MEDIA_ROOT
. Методы модели никогда не должны пытаться получить доступ к файлам с помощью MEDIA_URL
. Я уверен, что обзор вашего кода обнаружит ошибку.
Update: Я обезжиренное свой код, и это, кажется, вы настраиваете File.nzb
к %(1)sfiles/%(2)s.nzb' % {'1': settings.MEDIA_URL, '2': self.pk}
, который использует свой MEDIA_URL
, а затем в методе delete()
вы вызываете delete()
метод супер-класса File
как super(File, self).delete()
, который, очевидно, неправильно так как он попытается удалить File.nzb
и попытается получить доступ к файлу через MEDIA_URL
. Исправление, которое избавится от ошибки. Я оставлю точное решение в качестве упражнения для вас :)
Я добавил настройки своих медиа в свое описание вопроса. MEDIA_ROOT - это, по сути, абсолютный путь. –
Я немного изменил свой ответ. Проверить снова. –
Спасибо, что помогли мне, хотя эта проблема. Оказывается, вы были абсолютно правы. «File.nzb» эфир должен быть полным путем или относительным путем, который не начинается с косой черты. Поскольку я собираюсь развернуть на сервере NIX, я буду использовать относительные пути. Еще раз спасибо! –