【发布时间】:2023-01-14 05:57:15
【问题描述】:
我正在开发一个烧瓶应用程序,其中我有一个带有必填字段的 WTForm。我使用 DataValidator 来确保字段不为空。当字段为空时它确实显示一条错误消息,但当仅输入空格时不显示错误消息,但它也不验证表单,我最终被重定向到同一页面,直到我输入一些有效输入。我认为这是我项目中的一个错误,但我创建了一个新项目,同样的事情发生了。这是验证器的正常行为还是 wtform 上的错误。 这是 wtform 的 sn-p。
class AddUserForm(FlaskForm):
"""Class for adding a form to template"""
first_name = StringField("first name ", validators=[DataRequired()])
last_name = StringField(
"Last Name",
validators=[DataRequired()],
)
desc = StringField(
"Description",
validators=[DataRequired()],
widget=TextArea(),
)
age = IntegerField(
"Age",
validators=[
DataRequired(),
NumberRange(min=1, message="Age must be at least 1"),
],
default=1,
)
tag_1 = StringField(validators=[DataRequired()])
tag_2 = StringField(validators=[DataRequired()])
submit = SubmitField("Save")
这是 view.py 代码的 sn-p:
from flask import Flask, redirect, render_template, request, url_for
from .form_models import AddUserForm
import os
app = Flask(__name__)
SECRET_KEY = os.urandom(32)
app.config["SECRET_KEY"] = SECRET_KEY
@app.route("/add", methods=["GET", "POST"])
def add_faq():
form = AddUserForm()
if form.validate_on_submit():
print(form.data.items())
return render_template("add_user.html", form=form)
我尝试使用 InputValidator 但它不检查空格。我还尝试向 DataValidator 添加自定义消息。它再次在字段为空时起作用,但在字段不为空时不发送消息。
烧瓶 2.1.1 烧瓶-WT 1.0.0 WTForms 3.0.0
【问题讨论】:
-
你能给我们一个可重现的代码示例吗?
-
请向我们展示您的模板代码。
DataRequired验证器还应该对空格做出反应并提供错误消息,可以在相应输入字段下的模板中访问该错误消息。例如,您可以遍历“form.first_name.errors”并显示与该字段关联的消息。
标签: python flask flask-wtforms