У меня проблема, когда локальная версия django обрабатывает загрузку изображений, как и ожидалось, но мой сервер - нет. Примечание: я использую контейнер Django на MediaTemple.net (сервер сетки)
Вот мой код.
def view_settings(request):
<snip>
if request.POST:
success_msgs = ()
mForm = MainProfileForm(request.POST, request.FILES, instance = mProfile)
pForm = ChangePasswordForm(request.POST)
eForm = ChangeEmailForm(request.POST)
if mForm.is_valid():
m = mForm.save(commit = False)
if mForm.cleaned_data['avatar']:
m.avatar = upload_photo(request.FILES['avatar'], settings.AVATAR_SAVE_LOCATION)
m.save()
success_msgs += ('profile pictured updated',)
<snip>
def upload_photo(data,saveLocation):
savePath = os.path.join(settings.MEDIA_ROOT, saveLocation, data.name)
destination = open(savePath, 'wb+')
for chunk in data.chunks():
destination.write(chunk)
destination.close()
return os.path.join(saveLocation, data.name)
Вот где это становится странным, и я надеялся, что кто-то может пролить свет на эту ошибку, потому что либо a) это неправильный код ошибки, либо b) что-то происходит с файлом до его полной обработки Напомним, что файл был фактически загружен на сервер в намеченном каталоге - и все же это сообщение об ошибке продолжает сохраняться.
IOError at / user / settings
[Errno 2] Нет такого файла или каталога:
и '/ дом / user66666 / домены / example.com / html / СМИ / изображения / аватары / DSC03852.JPG'
Окружающая среда:
Метод запроса: URL запроса POST:
http://111.111.111.111:2011/user/settings
Django Версия: 1.0.2, финальная версия Python
Версия: 2.4.4 Установленные приложения:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites', 'ctrlme',
'usertools', 'easy_thumbnails']
Установленное промежуточное ПО:
( 'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware')
Traceback: File
"/Home/user6666/containers/django/leonidas/usertools/views.py"
в view_settings
m.avatar = upload_photo (request.FILES ['avatar'],
файл settings.AVATAR_SAVE_LOCATION)
"/Home/user666666/containers/django/leonidas/usertools/functions.py"
в загружаемом фото
destination = open (savePath, 'wb +')