Загрузка изображений в Django, ошибка имени

#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 — лучший способ — явный относительный импорт.