WTForms FieldList - 获取未排序数据

2 投票
1 回答
552 浏览
提问于 2025-04-17 05:20

我在使用 WTForms 的 FieldList 字段来处理多个输入字段。这个字段会根据输入框的名字把值整理到 form.data 里,但我希望能按照它们在表单中出现的顺序来获取这些值。我知道的唯一解决办法就是重写 process 函数。有没有更简单的解决方案呢?

1 个回答

0

HTTP规范中提到了一些内容。

这些部分会按照文档流中对应控件出现的顺序发送给处理程序。

这就解决了第一部分。第二部分是你可以做些什么。WTForms会处理任何形式的Multidict,特别是它需要有一个getlist方法。

接下来的事情就要看你使用的库了。Werkzeug项目提供了一个ImmutableOrderedMultiDict的实现,还有很多其他的实现可以在PyPi库或者GitHub上找到(https://github.com/gruns/orderedmultidict)。

最后一个问题是你的网络服务器实现是否保持了表单的顺序(也就是说,它是否严格遵循W3C规范?)这部分我就不太清楚了,因为我不知道你在用什么。

撰写回答