【发布时间】:2020-05-01 05:00:21
【问题描述】:
我的 UploadForm 类:
from app import app
from flask_wtf.file import FileRequired, FileAllowed
from wtforms.fields import MultipleFileField
from wtforms.validators import InputRequired,DataRequired
class UploadForm(FlaskForm):
.
.
.
roomImage = MultipleFileField('Room',validators=[FileAllowed(['jpg', 'png'], 'Image only!'), FileRequired('File was empty!')] )
.
.
.#there are other fields here which are not relevant to the problem at hand
HTML 模板
{% extends "base.html" %}
{% block content %}
<h1>Upload Your Images</h1>
<form action="/" enctype="multipart/form-data" method="post" >
{{ form.csrf_token }}
Room<br />
{{form.roomImage()}}
.
.
. <MORE THINGS THAT I HAVE EDITED OUT>
{{form.submit()}}
<br/>
{% if form.errors %}
{{ form.errors }}
{% endif %}
</form>
{% endblock %}
hosts.py 运行验证检查
def upload_image():#NEEDS HEAVY FIXING
"""home page to return the web page to upload documents"""
form = UploadForm()
if form.validate_on_submit():
使用 VS 的调试工具,我发现 form.validate_on_submit() 不起作用并且总是验证失败,并且我在我的 html 页面上收到此错误。
{'roomImage': ['文件为空!']}
还有另一个 MultipleFileField 控件,其代码几乎完全相同。 当我使用 FileField 上传一个文件时,不会发生此问题。这方面的文档非常有限,我只需要继续阅读this。我真的不知道如何解决这个问题。我已经广泛搜索以查找涉及 MultipleFileField 的示例,但它们没有使用任何验证。我在 Github 上找不到的一个线程建议使用 OptionalValidator,但这对我来说不是一个选项,甚至没有用。 有人可以建议我一个解决方案吗?
编辑:
甚至 FileAllowed() 验证器似乎也不起作用。
【问题讨论】:
标签: python python-3.x validation flask wtforms