是否可以在QuerySelectField中没有默认值而在验证中不允许空白?

问题描述 投票:1回答:1

我使用类似于此的代码生成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
)

默认选择现在为空,这是我想要的,但空选择现在有效,而我希望它是一个错误。

有没有办法没有默认但仍然无法使选择可选?

python wtforms flask-wtforms
1个回答
2
投票

DataRequired验证添加到该字段的表单似乎是最简单的方法。

from wtforms import validators

my_field = QuerySelectField(
    'My Field',
    query_factory=lambda: MyClass.query,
    allow_blank=True,
    validators=[validators.DataRequired()]
)
© www.soinside.com 2019 - 2024. All rights reserved.