2013-09-05 2 views
1

Dans mon admin je tente de télécharger une image et après avoir cliqué sur Enregistrer Je reçois cette erreur:django opération suspecte sur l'image télécharger

SuspiciousOperation at /admin/the_chooser/book/add/ 
Attempted access to '/media/51VqHa8exoL.jpg' denied. 
Request Method: POST 
Request URL: http://localhost/admin/the_chooser/book/add/ 
Django Version: 1.5.2 
Exception Type: SuspiciousOperation 
Exception Value:  
Attempted access to '/media/51VqHa8exoL.jpg' denied. 
Exception Location: /Users/username/.virtualenvs/django_books/lib/python2.7/site-packages/django/core/files/storage.py in path, line 259 
Python Executable: /usr/bin/python 
Python Version: 2.7.2 
Python Path:  
['/Library/Python/2.7/site-packages/pip-1.3.1-py2.7.egg', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC', 
'/Library/Python/2.7/site-packages', 
'/Library/Python/2.7/site-packages/setuptools-0.6c11-py2.7.egg-info', 
'/Users/username/Projects/django_books/', 
'/Users/username/.virtualenvs/django_books/lib/python2.7/site-packages'] 

Je viens d'installer la bibliothèque Python Imaging à mon virtualenv. Ceci est mon fichier models.py:

from django.db import models 

LITERARY_TYPE = (
    ('F', 'Fiction'), 
    ('N', 'Non-ficiton'), 
) 

class Book(models.Model): 
    name  = models.CharField(max_length=200) 
    author  = models.CharField(max_length=200,blank=True,null=True) 
    slug  = models.SlugField(unique=True) 
    literary_type = models.CharField(max_length=1, choices=LITERARY_TYPE) 
    description = models.TextField(blank=True) 
    added  = models.DateField(blank=True,null=True,auto_now_add=True) 
    cover  = models.ImageField(blank=True,null=True,upload_to='/media/') 

    def __unicode__(self): 
     return self.name 

C'est la première fois que je travaille avec des champs de fichiers dans Django. Mon paramètre upload_to est-il correct? Est-ce que quelque chose d'autre est le problème?

Répondre

6

Retirez la première barre oblique dans votre chemin de upload_to afin qu'il se lise: upload_to = «/media »

+0

Vous êtes ici partiellement correcte. Pour tous ceux qui ont ce problème, le répertoire '/ media /' n'a pas les permissions de groupe correctes. J'avais besoin de changer le groupe au groupe mac apache (_www) et lui donner des permissions d'écriture. J'ai également changé mon modèle pour utiliser "book_covers /" au lieu de "media /" parce qu'il créait un répertoire média à l'intérieur du répertoire média déjà existant. – smilebomb

Questions connexes