У меня есть форма, позволяющая загружать несколько файлов изображений. Все отлично работает, когда я выбираю изображения для загрузки. Если я пытаюсь отправить форму без файлов, я получаю сообщение об ошибке
OSError: cannot identify image file <FileStorage: '' ('application/octet-stream')>
. Я хотел бы проверить, является ли поле пустым, и если это так, обойти мою функцию save_images.
Вот моя форма
class NewPortfolioProject(FlaskForm):
title = StringField('Project Name', validators=[DataRequired(), Length(max=50)])
description = TextAreaField('Description', validators=[
DataRequired(), Length(min=1, max=1000)])
tags = StringField('#Tags - space separated', validators=[DataRequired()])
link = StringField('Link to live project')
github_link = StringField('Github link', validators=[DataRequired()])
images = MultipleFileField('Add screenshots/wireframes', validators=[FileAllowed(['png', 'jpg'])])
submit = SubmitField('Save Project')
В моем файле rout.py я пытаюсь проверить, содержит ли MultipleFileField данные
if form.validate_on_submit():
if not form.images.data:
portfolio.insert_one(new_doc)
else:
image_files = save_images(form.images.data)
new_doc['images'] = image_files
portfolio.insert_one(new_doc)
Но это (и все остальное, что я пробовал) нене работает
Вместо того, чтобы быть пустым, form.images.data представляется объектом хранилища файлов. Как проверить, пусто ли это?