我使用类似于此的代码生成WTForms字段:
my_field = QuerySelectField(
'My Field',
query_factory=lambda: MyClass.query
)
但在这种情况下,我收回了所有MyClass
类型的元素,第一个被自动选中。
如果我以这种方式改变它:
my_field = QuerySelectField(
'My Field',
query_factory=lambda: MyClass.query,
allow_blank = True
)
默认选择现在为空,这是我想要的,但空选择现在有效,而我希望它是一个错误。
有没有办法没有默认但仍然无法使选择可选?
将DataRequired
验证添加到该字段的表单似乎是最简单的方法。
from wtforms import validators
my_field = QuerySelectField(
'My Field',
query_factory=lambda: MyClass.query,
allow_blank=True,
validators=[validators.DataRequired()]
)