WTForms:获取相关数据

WTForms: fetch related data

本文关键字:数据 获取 WTForms      更新时间:2023-09-26

我有Flask和Flask-WTF
我正在尝试实现表单,它应该根据另一个(上一个(字段中的选定值更改choices SelectField列表(并且可能会更改输入集(。

我是什么意思..例子。

例A:

具有初始形式

Manufacturer: [ ----- ]  // Options are: Ford, KIA, Honda ...
Model:        [ ----- ]  // No options, disabled
...           .........  // Other fields

然后用户选择Ford,并显示模型的适当options

Manufacturer: [ Ford  ]  // Options are: Ford, KIA, Honda ... still posible to change
Model:        [ ----- ]  // Options are: Focus, Mondeo, Mustang, ...
...           .........  // Other fields

或者,也许是一种替代行为,例如 B:

具有初始形式

Manufacturer: [ ----- ]  // Options are: Ford, KIA, Honda ...

然后用户选择FordModel字段显示适当的选项

Manufacturer: [ Ford  ]  // Options are: Ford, KIA, Honda ... still possible to change
Model:        [ ----- ]  // Options are: Focus, Mondeo, Mustang, ...

或者,也许是一个"巫师",例如 C:

具有初始形式

Manufacturer: [ ----- ]  // Options are: Ford, KIA, Honda ...
[ next ]                 // button

然后用户选择Ford,单击next,并显示Model字段,而上一个字段成为标签

Manufacturer:   Ford     // Just a label
Model:        [ ----- ]  // Options are: Focus, Mondeo, Mustang, ...
[prev] [ next ]          // buttons

我有一些想法,如何做到这一点。

1(当用户选择(任何(字段时,我会对新表单发出POST请求。这是可能的,因为我制作非常轻量级的应用程序。它很容易实现,但可能很烦人,而且没有我想要的那么好。

2( 当用户选择字段时,从服务器 (json/pson( 获取依赖字段的选项,并且此依赖字段将更新并解锁。

3("C"行为是最容易实现的,但它不适合本世纪

第二个想法听起来不错......但我是后端,对js不是很好。


所以..问题是如何实现这样的形式?任何指向好教程/文档的链接都会很棒(我已经用谷歌搜索过,但没有找到(

我相信

有两种好方法可以实现你想要的。

  1. 使用 AJAX 根据用户选择加载所需的选项(如您的第二个想法所建议的那样(
  2. 如果选项列表不大,您可以将所有选项嵌入为 javascript 对象,并使用 javascript 根据用户选择加载适当的选项。 例如 http://www.javascriptkit.com/javatutors/selectcontent.shtml

第二种方法的优点是从用户的角度做出更快的响应,因为所需的所有数据都已经在页面上。

你提到不太擅长javascript,但我认为除了你可以接受你的第一个想法之外,没有其他方法可以做你想做的事情。