Какой у тебя MEDIA_ROOT
в settings.py
? Из обратной трассировки кажется, что вы установили MEDIA_ROOT
на /static/
.
Эта ошибка появляется, поскольку Django пытается получить доступ к /static/
, к которому у него нет доступа. Укажите абсолютный путь для MEDIA_ROOT
, например C:/Documents/static/
, и дайте Django полные права доступа к этому каталогу.
Это должно решить вашу проблему.
Приложение : Поскольку ваш MEDIA_ROOT
выглядит нормально, я предполагаю, что вы используете MEDIA_URL
для удаления файла вместо MEDIA_ROOT
. Действительно, из-за ошибки кажется, что Джанго пытался получить доступ к /static/files/8.nzb
и ему было отказано в доступе. Ясно, что /static/
это ваш MEDIA_URL
, а не MEDIA_ROOT
. Методы модели никогда не должны пытаться получить доступ к файлам, используя MEDIA_URL
. Я уверен, что проверка вашего кода обнаружит ошибку.
Обновление : я просмотрел ваш код и, кажется, вы устанавливаете 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
. Исправление, которое избавит от ошибки. Я оставлю вам точное решение в качестве упражнения:)