#python #django #image #file-upload
#python #django #изображение #загрузка файла
Вопрос:
Получение NameError (глобальное имя FileUploadHandler не определено). Вот модель:
class FileUploadHandler(models.Model):
title = models.CharField(max_length=100)
file = models.ImageField(upload_to="wiki/static/")
И представление:
def image_upload(request):
if request.method == 'POST':
form = UploadImageForm(request.POST, request.FILES)
if form.is_valid():
FileUploadHandler(request.FILES['image'])
return render_to_response('wiki/gallery.html')
else:
form = UploadImageForm()
return render_to_response('wiki/gallery.html', RequestContext(request, {'form': form}))
Чего мне не хватает?
Ответ №1:
В верхней части файла представления введите:
from models import FileUploadHandler
Это предполагает, что у вас есть стандартная views.py
и models.py
файловая структура, где оба находятся в одном каталоге.
Комментарии:
1. Это случается со всеми. Просто помните, что a
NameError
обычно означает, что вы используете имя для чего-то, что Python понятия не имеет, как интерпретировать. Виновником, вероятно, является отсутствующий импорт.2. Спасибо. Я не получаю сообщение об ошибке, но файл не отображается в указанной папке. Я попытался добавить form.save() в представление, но это указывает на то, что у объекта нет этого атрибута.
3. Что ж, на этот вопрос был дан эффективный ответ. Если вы столкнулись с проблемой после решения здесь, то лучше всего опубликовать отдельный вопрос.
4. еще лучше (правильнее):
from .models import FileUploadHandler
— лучший способ — явный относительный импорт.