Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 17, 2010 02:08:35

Igor Shmigoff
От:
Зарегистрирован: 2010-11-13
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

global name 'request' is not defined

Всем привет

Заливаю файл через форму.

Делаю как в документации:

#model.py

class FileToUpload(models.Model):   
title = models.CharField(max_length=50)
file = models.FileField(upload_to='content/')
timestamp = models.DateTimeField(auto_now_add=True, blank=True)

class FileToUploadForm(ModelForm):
class Meta:
model = FileToUpload
#views.py
def uploading_function(request):      
if request.method == 'POST':
form = FileToUploadForm(request.POST, request.FILES)
if form.is_valid():
handle_uploaded_file(request.FILES['file'])
return HttpResponseRedirect('/ok')
else:
form= FileToUploadForm()
return render_to_response('mysite/FileToUpload_form.html',
{'form': form})

def handle_uploaded_file(f):
destination = open('%s/%s' % (MEDIA_ROOT, request.FILES['filename']), 'wb+')
for chunk in f.chunks():
destination.write(chunk)
destination.close()
Вылезает ошибка:
global name 'request' is not defined
Гуглил, кое где советуют юзать RequestContext.
Т.е. вот здесь нужно добавить:
form= FileToUploadForm()
return render_to_response('mysite/FileToUpload_form.html',
{'form': form}, context_instance=RequestContext(request))
Короче, не помогло. Есть у кого идеи, как мне нормально без проблем закачать файл???



Офлайн

#2 Ноя. 17, 2010 02:53:36

AlexKiriukha
От:
Зарегистрирован: 2008-02-03
Сообщения: 81
Репутация: +  0  -
Профиль   Отправить e-mail  

global name 'request' is not defined

request - это первый параметр у view. Обозвать можно как угодно, это просто договорённость. Во второй строке handle_uploaded_file используется переменная с таким же именем, но откуда она берётся не ясно. Т.е. даже с точки зрения python, а не django.

Теперь о главном. Решение - прочитать djangobook и документацию. Это не снобизм, просто очень заметно, а без базового понимания постоянно будут такие “затыки”.



Офлайн

#3 Ноя. 18, 2010 01:13:40

Igor Shmigoff
От:
Зарегистрирован: 2010-11-13
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

global name 'request' is not defined

AlexKiriukhaСпасибо за решение, но я многое уже что прочитал и все равно как то не встает все в голове на место.
Ошибку здесь свою понял - затупил…



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version