2011-04-04 17 views
9

Resim yüklemeleri ile güzel oynamak için django alma konusunda sorun yaşıyorum. Benim komut dosyası şöyle tarihine göre dizinleri oluşturur:Django - Medya yükleme [Errno 13] İzin reddedildi

file = models.FileField(upload_to='uploads/%m-%Y/') 

Şimdi, yüklemeler klasöründe tarihli dizini oluşturmak ve 755'e klasörü chmod eğer yükleme çalışıyor ama chmod çalışırsanız tarihli alt klasörü oluşturmadan (django'ya ihtiyacım var) klasörü yükler, bir izin hatası alıyorum.

Nasıl yapılır, bir klasör alt klasörlerin oluşturulmasına izin verir mi? medya dizine yazma izni yok senin Python yorumlayıcısı çalıştıran

Django Version: 1.3 
Python Version: 2.5.2 
Installed Applications: 
['django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.admin', 
'tagging', 
'mediamanager', 
'livesettings', 
'projects'] 
Installed Middleware: 
('django.middleware.common.CommonMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware') 


Traceback: 
File "/var/lib/python-support/python2.5/django/core/handlers/base.py" in get_response 
    111.       response = callback(request, *callback_args, **callback_kwargs) 
File "/var/lib/python-support/python2.5/django/utils/decorators.py" in _wrapped_view 
    93.      response = view_func(request, *args, **kwargs) 
File "/var/lib/python-support/python2.5/django/contrib/auth/decorators.py" in _wrapped_view 
    23.     return view_func(request, *args, **kwargs) 
File "/var/www/enigma-dev/enigma/mediamanager/views.py" in upload_media 
    24.   m.upload_media(data=form.cleaned_data, params=params) 
File "/var/www/enigma-dev/enigma/mediamanager/models.py" in upload_media 
    63.  self.save() 
File "/var/lib/python-support/python2.5/django/db/models/base.py" in save 
    460.   self.save_base(using=using, force_insert=force_insert, force_update=force_update) 
File "/var/lib/python-support/python2.5/django/db/models/base.py" in save_base 
    543.       for f in meta.local_fields if not isinstance(f, AutoField)] 
File "/var/lib/python-support/python2.5/django/db/models/fields/files.py" in pre_save 
    255.    file.save(file.name, file, save=False) 
File "/var/lib/python-support/python2.5/django/db/models/fields/files.py" in save 
    92.   self.name = self.storage.save(name, content) 
File "/var/lib/python-support/python2.5/django/core/files/storage.py" in save 
    49.   name = self._save(name, content) 
File "/var/lib/python-support/python2.5/django/core/files/storage.py" in _save 
    166.    os.makedirs(directory) 
File "/usr/lib/python2.5/os.py" in makedirs 
    171.  mkdir(name, mode) 

Exception Type: OSError at /media-manager/upload/ 
Exception Value: [Errno 13] Permission denied: '/var/www/site-dev/site/static/uploads/04-2011' 

cevap

19

süreci: Burada

bir traceback olduğunu. Ortam dizini chgrp veya chown ya da Python işleminizle aynı gruba ihtiyacınız olacak ve dosyalarda en az g+rwx ve dosyalarda g+rw olduğundan emin olmalısınız.

+0

Maalesef, bir klasördeki izinleri bulmak için hangi komutu kullanacağımı söyleyebilir misiniz? Ben ubuntu kullanıyorum. – Hanpan

+0

'ls' komutunu deneyin, örn. 'ls -lha' –

+2

Python işleminin hangi grupta olduğunu nasıl anlayabilirsiniz? Teşekkürler! – cloudrave

8

aynı hata almaya ve değiştirerek düzeltmek edildi:

MEDIA_ROOT = '/media/' 

için:

MEDIA_ROOT = 'media/' 

settings.py altında.

İlgili konular