我是python和编程的新手。
即使我将表单字段验证程序设置为UploadNotAllowed
,我仍然会收到Optional()
错误。我的目标是允许用户选择上传或不上传个人资料照片。如果选择上传图像,则所有配置都能正常工作。
任何帮助将不胜感激。
以下是表单字段:
class SettingsForm(FlaskForm):
profile_pic = FileField('Profile Picture', validators= [Optional(), FileAllowed(images, 'Only images are allowed here')])
这是我的views.py:
if form.validate_on_submit():
filename = images.save(request.files['profile_pic'])
current_user.profile_pic = images.url(filename)
答案 0 :(得分:0)
这是文档(here)的略微编辑版本。这也提供了一些关于你的html文件应该包含什么的提醒。
from flask_wtf import FlaskForm
from flask_wtf.file import FileField, FileRequired
from werkzeug.utils import secure_filename
class PhotoForm(FlaskForm):
photo = FileField(validators=[Optional(), FileAllowed(images, 'Only images are allowed here')])
@app.route('/upload', methods=['GET', 'POST'])
def upload():
if form.validate_on_submit():
f = form.photo.data
filename = secure_filename(f.filename)
#you can replace this with wherever you want to save your images
f.save(os.path.join(
app.instance_path, 'photos', filename
))
current_user.profile_pic = images.url(filename)
return redirect(url_for('index'))
return render_template('upload.html', form=form)