Найти - Пользователи
Полная версия: global name 'request' is not defined
Начало » Django » global name 'request' is not defined
1
Igor Shmigoff
Всем привет

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

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

#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))
Короче, не помогло. Есть у кого идеи, как мне нормально без проблем закачать файл???
AlexKiriukha
request - это первый параметр у view. Обозвать можно как угодно, это просто договорённость. Во второй строке handle_uploaded_file используется переменная с таким же именем, но откуда она берётся не ясно. Т.е. даже с точки зрения python, а не django.

Теперь о главном. Решение - прочитать djangobook и документацию. Это не снобизм, просто очень заметно, а без базового понимания постоянно будут такие “затыки”.
Igor Shmigoff
AlexKiriukhaСпасибо за решение, но я многое уже что прочитал и все равно как то не встает все в голове на место.
Ошибку здесь свою понял - затупил…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB