当数据库更新时,WTForms 中的选择验证不会更新

2024-04-29

我明白了SelectFieldWTForms 中的方法采用 can 参数choices其形式为...

choices=[("value1", "display of value 1"), ("value2", "display of value 2")]

我需要根据对数据库的调用来填充我的选择。我使用 neo4j 作为后端,因此无法使用 modelforms 或其他内置解决方案来填充表单中的数据。

def get_list_of_things():
    query = 'start n = node:things("*:*") return ID(n), n.display_name;'
    t = cypher.execute(cdb, query)[0]
    for x in t:
        x[0] = str(x[0])
        x[1] = str(x[1])
    things = list(tuple(x) for x in t)
    return things

class SelectAThing(Form):
    thingID = SelectField('Thing name', choices=get_list_of_things())

运行 choice = get_list_of_things() 确实会产生一个有效的选择列表,这很好,这基本上是有效的。

然而,即使数据库更新了事物列表,它似乎也永远不会更新,并且我稍后会返回到该表单。如果我将内容添加到数据库并返回,我仍然会看到第一个内容列表。


没有假人,只是不要把它放在课堂上。将其放入视图代码中。

@app.route('/route')
def routename()
    form = SelectAThing()
    form.orgid.choices=get_joinable_orgs()

我发现这很棘手,因为我没有意识到我可以在视图中初始化它之后将其分配给表单,就像它是一个常规的 python 对象一样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当数据库更新时,WTForms 中的选择验证不会更新 的相关文章

随机推荐

  • 在函数中使用node-mysql

    我对 Nodejs 很陌生 有一个问题 尝试创建一个函数 该函数将调用我在表中提到其 ID 的任何字段的值 function getUserInfo userID dynamicField var query connection quer
  • 破译vtable转储

    我正在 玩 C 中的虚拟继承 我想知道类对象是如何布局的 我有这三个课程 class A private int a public A this gt a 47 virtual void setInt int x this gt a x v
  • 我怎样才能找出MySQL中的默认字符集/排序规则[重复]

    这个问题在这里已经有答案了 我在 Ubuntu 18 04 上使用 MySQL 和 MySQL Workbench 8 0 当我创建字符串类型的列时 我将字符集 排序规则保留为默认值 在 MySQL Workbench 中 它只是告诉我就是
  • 在 sails.js 中跟踪用户在线/离线状态

    我必须在我的 Web 应用程序中使用 sails js 中的 websockets 找出用户状态 即用户是否在线 离线 请帮我 多谢 从 Sails v0 9 8 开始 您可以使用onConnect and onDisconnect功能于c
  • CSS 的用户选择和可访问性

    如果我使用以下内容 webkit touch callout none webkit user select none khtml user select none moz user select none ms user select n
  • 如何有效地对一个数组中某个值在另一个数组中的位置出现的次数求和

    我正在寻找一种有效的 for 循环 避免解决方案来解决我遇到的数组相关问题 我想使用一个巨大的一维数组 A gt size 250 000 用于一维索引的 0 到 40 之间的值 以及用于第二维索引的具有 0 到 9995 之间的值的相同大
  • 从 X.509 证书中提取 PEM 公钥

    我已经创建了一个包含公钥 DER 文件的证书 但我现在需要 PEM 格式的公钥用于不同的平台 目的是使用相同的公钥 我使用创建它iOS 中的 RSA 加密并使用 PHP 解密 http jslim net blog 2013 01 05 r
  • Android - NumberPicker 滚动/快速滑动更快

    如何使数字选择器滚动 快速滑动更快 目前从00分钟到59分钟需要付出很大的努力 我尝试过一些例子Android 中 Viewpager 控制器速度减慢 https stackoverflow com questions 8155257 sl
  • Spark,执行器加载/查询数据 - 性能非常低

    我的用例如下 写作RDD归档依据saveAsTable 对于 ORC 文件也是如此 每次保存都会创建新文件 因此1000 000著作给我1000 000ORC 文件 我知道每个 RDD 都会创建新的 ORC 文件 这是很自然的 但是 我不知
  • 定位区域中的点

    我有一个数据框 其中两列是点的坐标 如果该点位于特定位置 我需要用特定值填充一列 全无 该位置和标签存储在另一个 df 中 解释起来并不容易 但我希望通过一个例子就可以清楚地理解 DF1 latitude longitude LABEL 0
  • 无法创建新的远程会话。阿皮姆

    public class StartFirstJobTest AppiumDriver driver BeforeTest public void setUp throws Exception DesiredCapabilities cap
  • 将 openCV 矩阵转换为向量

    看起来很容易 毕竟我们知道 std 或 openCV 向量可以轻松转换为矩阵 如下所示 vector
  • BlazeDS 与 GraniteDS [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 pandas 中创建具有动态名称的新数据框并添加新列

    我有一个数据框 df df pd DataFrame A a 1 a B a np nan c ID 1 2 2 t pd tslib Timestamp now pd tslib Timestamp now np nan 添加了新列 df
  • 将接口转换为结构体

    type SipField interface Info id name defaultValue string length int type Field string func f Field Get string return str
  • gzipstream.copyto .net 3.5 中的替代且简单的方法

    你好 在 net 4的这段代码中我使用了gzipstream的copyto方法 System IO MemoryStream ms new System IO MemoryStream byteArray GZipStream Decomp
  • 创建 XML 文档的最佳 .net 方法

    我试图找出编写 XML 文档的最佳方法 下面是我尝试根据从 ERP 系统中提取的数据创建的简单示例 我读过有关 XMLWriter 的内容 但我想看看是否还有其他更好的方法 任何建议将不胜感激 XML 示例
  • 为什么我的 .git 文件很大?

    我不小心在 git 目录中添加并提交了一些非常大 100MB 的 PSD 文件 当这些文件位于目录中时 我对它们进行了一系列编辑 但后来意识到它们不应该在那里 并将它们从目录中删除 然后我跑了 git add all git commit
  • 从现有数组创建新结果

    如果我有一个如下所示的示例数据 我需要从结果数组中获取 FinalResult 数组 let result type Science link www educatorsector com type Sports News link www
  • 当数据库更新时,WTForms 中的选择验证不会更新

    我明白了SelectFieldWTForms 中的方法采用 can 参数choices其形式为 choices value1 display of value 1 value2 display of value 2 我需要根据对数据库的调用