Задать вопрос
@FFFF121451235

Почему FileField.data возвращает class 'str', а не class 'werkzeug.datastructures.FileStorage'?

Для загрузки пользовательского изображение на сайт (flask) используется wtf forms в forms.py
class AddImage(FlaskForm):
   image = FileField('Загрузите изображение(только .png)', validators=[DataRequired()])

В main.py при обработке форме данные строки
print(type(form.image.data))
print(type(form.image))
form.image.data.save(image_name)

возвращают
<class 'str'>
<class 'wtforms.fields.simple.FileField'>
и ошибку 'str' object has no attribute 'save'

Почему form.image.data возвращает строку, а не сам файл?
  • Вопрос задан
  • 165 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Filart97
Сохранять нужно объект модели орм, которая у тебя используется. Объект 'wtforms.fields.simple.FileField' тоже скорее всего не имеет метода save.
Логика такая должна быть:
profile = Profile()
image = form.image
profile.avatar = image
profile.save()


То есть не просто сохраняется картинка, а обновляется/создается объект класса Profile. Понятно?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы