Flask: ошибка при добавлении в модель зарузки картинок
Всем привет! Добавил в модель возможность загрузки файлов:
def picture_validation(form, field):
if field.data:
filename = field.data.filename
if filename[-4:] != '.jpg':
raise ValidationError('file must be .jpg')
if imghdr.what(field.data) != 'jpeg':
raise ValidationError('file must be a valid jpeg image.')
field.data = field.data.stream.read()
return True
form_columns = ['id','url_pic', 'pic']
column_labels = dict(id='ID', url_pic="Picture's URL", pic='Picture')
def pic_formatter(view, context, model, name):
return 'NULL' if len(getattr(model, name)) == 0 else 'a picture'
column_formatters = dict(pic=pic_formatter)
form_overrides = dict(pic= FileUploadField)
form_args = dict(pic=dict(validators=[picture_validation]))
Выдает такую ошибку:
File "/home/cyberz/projects/new_personal_site/nikitaklimov/app/app.py", line 96 filename = field.data.filename ^ IndentationError: expected an indented block
В чем проблема? Спасибо.
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Flask тут не при чём.
if field.data:
filename = field.data.filename
В следующей строке после if должен быть отступ:
if field.data:
filename = field.data.filename
Если в ошибке есть слово indent, indented, indentation или ещё что-то однокоренное, то значит проблема в отступах - их или много, или мало, что-то не сходится.
В Питоне отступы обозначают блоки кода, они не могут быть произвольными.