Quelle est votre MEDIA_ROOT
à settings.py
? À partir du back-trace, il semble que vous avez défini votre MEDIA_ROOT
sur /static/
.
Cette erreur arrive depuis que Django tente d'accéder à /static/
auquel il n'a pas accès. Mettez un chemin d'accès absolu pour MEDIA_ROOT
comme C:/Documents/static/
et donnez des autorisations complètes à Django pour accéder à ce répertoire.
Cela devrait résoudre votre problème.
Addendum: Étant donné que votre MEDIA_ROOT
semble être OK, je suppose que vous utilisez MEDIA_URL
pour supprimer le fichier au lieu de MEDIA_ROOT
. En effet, à partir de l'erreur, il semble que Django essayait d'accéder au /static/files/8.nzb
et se voyait refuser l'accès. Clairement, /static/
est votre MEDIA_URL
et non votre MEDIA_ROOT
. Les méthodes du modèle ne devraient jamais essayer d'accéder aux fichiers en utilisant le MEDIA_URL
. Je suis sûr qu'un examen de votre code détectera l'erreur.
Mise à jour: J'écrémé votre code et il semble que vous définissez File.nzb
-%(1)sfiles/%(2)s.nzb' % {'1': settings.MEDIA_URL, '2': self.pk}
qui utilise son MEDIA_URL
puis dans la méthode delete()
vous appelez la méthode delete()
de la super-classe de File
comme super(File, self).delete()
qui est évidemment faux comme il va essayer de supprimer File.nzb
et essaiera d'accéder au fichier via le MEDIA_URL
. Correction qui va se débarrasser de l'erreur. Je vais laisser la solution exacte comme un exercice pour vous :)
J'ai ajouté mes paramètres de médias à ma description de la question. MEDIA_ROOT est, en fait, un chemin absolu. –
J'ai édité ma réponse un peu. Revérifier. –
Merci d'avoir aidé mon si ce problème. Il s'avère que vous étiez complètement correct. "File.nzb" ether doit être un chemin complet ou un chemin relatif qui ne commence pas par la barre oblique. Puisque je vais déployer sur un serveur NIX, j'utiliserai des chemins relatifs. Merci encore! –