Форум сайта python.su
Всем привет
Заливаю файл через форму.
Делаю как в документации:
#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
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
form= FileToUploadForm()
return render_to_response('mysite/FileToUpload_form.html',
{'form': form}, context_instance=RequestContext(request))
Офлайн
request - это первый параметр у view. Обозвать можно как угодно, это просто договорённость. Во второй строке handle_uploaded_file используется переменная с таким же именем, но откуда она берётся не ясно. Т.е. даже с точки зрения python, а не django.
Теперь о главном. Решение - прочитать djangobook и документацию. Это не снобизм, просто очень заметно, а без базового понимания постоянно будут такие “затыки”.
Офлайн
AlexKiriukhaСпасибо за решение, но я многое уже что прочитал и все равно как то не встает все в голове на место.
Ошибку здесь свою понял - затупил…
Офлайн