python - 当字段为空时,flask-wtf 不会验证

标签 python flask flask-wtforms

我有两个 flask 表单可以在我的应用程序上创建书籍和作者。仅当所有字段均已填写时,它们才有效,而我只需要一两个严格必需的字段!

作者类别:

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')

模板:

<form action="" method="post" name="add_author">
    {{form.hidden_tag()}}
    <p>Veuillez donner son prénom (obligatoire) : {{form.firstname}}</p>
    <p>Nom de famille (obligatoire) : {{form.familyname}}</p>
    <p>Nationalité : {{form.nationality}}</p>
    <p>Lieu de naissance : {{form.placeofbirth}}</p>
    <p>Date de naissance (Y-m-d): {{form.dateofbirth}}</p>
    <p>Site web : {{form.website}}</p>
    <p>Biographie : {{form.biography}}</p>
   <p><input type="submit" value="Envoyer"></p>
</form>
{% endblock %}

以及 View :

@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)

最佳答案

我在正在构建的 Flask 应用程序中使用 WTForms,并且我的表单运行良好。不过我使用的语法略有不同:

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

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

我现在检查了一下,结果发现在这种情况下我 follow the WTF documentation way ,至少在速成类(class)中他们正在写这样的东西。

accept_rules = BooleanField('I accept the site rules', [validators.Required()]) 

如果这不起作用,您可以尝试简单地编写:

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

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

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

关于python - 当字段为空时,flask-wtf 不会验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17530959/

相关文章:

python Mechanize 表单登录给出TypeError

python - 替换字典中的键值

python - 提交前验证 WTForm

python - Flask-WTF CSRF token 丢失

javascript - 如何更改 Plone 中 'Print this' document_action 的 url 表达式以与 collective.documentviewer 一起使用?

python - 从指定列中减去 pandas 列

python - Hello World - Flask/Apache/mod_wsgi - Apache 没有响应

android - 有没有一种方法可以将音频文件发送到Flask服务器?

python - 我如何用 flask 扭曲运行?

python - Flask - 无法在子表单中使用验证器