Как проверить, не заполнено ли поле загрузки файла? - PullRequest
0 голосов
/ 10 октября 2019

У меня есть форма, позволяющая загружать несколько файлов изображений. Все отлично работает, когда я выбираю изображения для загрузки. Если я пытаюсь отправить форму без файлов, я получаю сообщение об ошибке

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 представляется объектом хранилища файлов. Как проверить, пусто ли это?

...