flaskwtf不验证fields blan

2024-04-25 11:44:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个烧瓶表单在我的应用程序上创建书籍和作者。只有在所有字段都被填充的情况下,它们才起作用,而我只想严格要求一到两个字段!在

作者类:

class AuthorForm(Form):
familyname = TextField('familyname', validators = [Required()])
firstname = TextField('firstname', validators = [Required()])
biography = TextAreaField('biography')
dateofbirth = DateField('dateofbirth')
placeofbirth = TextField('placeofbirth')
nationality = TextField('nationality')
website = TextField('website')

模板:

^{pr2}$

以及观点:

@app.route('/add_author', methods = ['GET', 'POST'])
def add_author():
form = AuthorForm()
if form.validate_on_submit():
    a = Author(firstname= form.firstname.data,
    familyname= form.familyname.data,
    nationality= form.nationality.data,
    dateofbirth= form.dateofbirth.data,
    placeofbirth = form.placeofbirth.data,
    website = form.website.data,
    biography = form.biography.data)
    db.session.add(a)
    db.session.commit()
    return redirect('/index')
return render_template('add_author.html', title = 'Ajouter un auteur a la base de donnees', form = form)

Tags: formadddata作者websitefirstnameauthortextfield
1条回答
网友
1楼 · 发布于 2024-04-25 11:44:39

我在我正在构建的Flask应用程序中使用WTForms,我的表单工作得很好。不过,我使用的语法略有不同:

deadline = TextField('Deadline',[validators.Required()])

注意验证器中的点符号,也许这是导致您的问题的原因?在

我现在检查了一下,结果发现在这个例子中,我follow the WTF documentation way,至少在速成课程中,他们写的是这样的东西。在

^{pr2}$

如果这不起作用,你可以试着简单地写:

familyname = TextField('familyname', [Required()])

也可以显式地将验证器设置为可选:

biography = TextAreaField('biography', [validators.optional())

相关问题 更多 >