WTF 选择字段在前端显示带有圆括号的值

Posted

技术标签:

【中文标题】WTF 选择字段在前端显示带有圆括号的值【英文标题】:WTF select field showing value with round brackets on front end 【发布时间】:2020-09-07 01:39:10 【问题描述】:

简而言之,我正在制作一个 Flask-wtf 应用程序,其中我有一个选择字段:

someVar=SelectField("someVar",choices=result)

其中result 是从数据库中获取的数据列表。

现在问题在于前端结果显示的值如 ('abcxyz',) 而不仅仅是“abcxyz”,而 DB 查询也产生的值只是“abcxyz”。我也希望在页面加载时下拉列表为空白。

我在 html 上将这个选择字段值显示为:

 form.someVar.label  form.someVar

【问题讨论】:

【参考方案1】:

我建议您使用 QuerySelectField 而不是 SelectField,因为您要从数据库中获取数据来填充下拉列表。

from wtforms.ext.sqlalchemy.fields import QuerySelectField

所以你会做类似的事情,

someVar = QuerySelectField("someVar",
                        blank_text='select someVar',
                        query_factory=lambda: Model.query.all(),
                        allow_blank=True)

在这里您使用query_factory 来设置选项。另请注意,blank_text 属性将确保默认情况下不选择任何值。

【讨论】:

感谢您的回复,但由于我是 Flask 的新手,我不太了解这种方法,我只是在 Sql Alchemy 的帮助下触发我的查询:result = DBConnection.getConnection( ).execute("select SomeVarName from MV5")..........MV5 是一个物化视图,我不确定是否需要为它创建任何模型类。您能否分享一个包含一些细节的示例。这将非常有帮助....谢谢 DBConnection.getConnection() 是我的 python 类方法,它返回 DB 连接对象。 请任何人举个例子来解决我的问题?? 如果你使用flask-sqlalchemy,你必须使用ORM。您能否使用存储选择的模型代码更新您的帖子?【参考方案2】:

返回值是一个元组。 而不是

someVar = SelectField("someVar", choices=result)

使用

someVar = SelectField("someVar", choices=result[0])

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于WTF 选择字段在前端显示带有圆括号的值的主要内容,如果未能解决你的问题,请参考以下文章

我想请问前端的大佬,为啥在vue 的data中定义的一个变量,在页面上都显示不了,不知道怎么回事,

springmvc 在前端jsp页面,select标签显示复合条件。和 session跨页面操作。

前端过滤,搜索框注入案例

LayUI 性别前端显示

如何使用 React 前端从 Mongoose 显示带有 <img> 的图像

ReactJS 和 django-forms