当前位置: 首页 > 面试题库 >

不是动态选择字段WTFORMS的有效选择

禄星腾
2023-03-14
问题内容

我目前正在使用WTFORMS创建一个动态选择字段,但是它从未提交,并且通过以下错误使验证失败。

Not a valid choice

我的字段是这样创建的:

area = SelectField()

在视图中,我从数据库中获取选项,如下所示:

form = MytestForm()
form.area.choices = [(a.id, a.name) for a in Area.objects.all()]

但是,如果我创建静态选项,它将起作用。


问题答案:

我的猜测是,Area.idint-当数据从它被视为一个客户端回来的字符串由WTForms除非调用传递给coerce了的关键字参数wtforms.fields.SelectField的构造函数:

area = SelectField(coerce=int)

或者,如果你使用的是SQLAlchemy,则可以使用wtforms.ext.sqlalchemy.fields.QuerySelectField(wtforms_sqlalchemy如果你使用的是WTForms 3+):

area = QuerySelectField(query_factory=Area.objects.all,
                            get_pk=lambda a: a.id,
                            get_label=lambda a: a.name)


 类似资料:
  • 问题内容: 我正在尝试使用FlaskForms将userID变量传递给WTForms。首先,我将显示可以正常工作的代码,然后显示需要修改的内容(该部分我不知道如何)。我要添加与某个组关联的新名称。 FlaskForm模型: 查看模型: 模板: 我在下拉列表中看到正确的列表,并且在提交时会给我正确的数字。 任务:我需要基于current_user.userID传递不同的列表。我正在使用SQLAlch

  • 问题内容: 对此不熟悉,尝试按照著名的Flask教程使用Flask-bootstrap,Flask-wtforms,Jinja等构建一个应用程序 我有一个带有2个选择字段和一个按钮的表单。 我只希望第一个字段预先填充,而另一个字段根据前一个字段的选定值填充(在客户端?)。 在模板中,我尝试类似 可以正常工作(只要我返回元组列表以使用正确的javascript和路由填充下一个字段),但我想要以下内容

  • 这是我的主页,在那里我选择了一个选项字段。 opt1.php: 这是我的javascript,在这里我从上面的select获得值,并传递给opt2.php 这是我的opt2.php页面,用于显示sub select。 实际上,这并没有产生预期的结果。 有没有逻辑上或处理上的错误?

  • 问题内容: 我在尝试了解如何在Django中创建动态选择字段时遇到了一些麻烦。我有一个模型设置类似: 我想做的是创建一个选择字段whos的值是与该骑手相关联的航点(将是登录的人)。 目前,我以如下形式覆盖init: 但是所有要做的就是列出所有路标,它们与任何特定的骑手都没有关联。有任何想法吗?谢谢。 问题答案: 你可以通过将用户传递给表单init来过滤航点 启动表单时从你的角度来看 在模型形式的情

  • 问题内容: 我正在尝试根据文档中的值创建动态参数。 我到目前为止在这里尝试过 这引发了以下错误: 我想使参数动态化,以便doc值确定要扣除的值。 使用ElasticSearch 7.2 一个复杂而糟糕的方法是使用以下脚本 Es对象: 问题答案: 您需要尝试不使用单引号。

  • 我正在尝试从一个select表单中获取一个时间值。我在代码中看不到任何错误,尝试更改所有类名和变量,但值仍然没有被get select。(提交表单后我看不到所选的值) 代码添加如下: