Wtforms - как FieldList получает входные данные от внешнего интерфейса
Мне любопытно как FieldList
Из работ wtforms я провел некоторый эксперимент с интерфейсом, используя javascript.
Так что в основном у меня есть несколько повторяемых полей, и есть кнопка для динамического добавления нового поля и изменения его id
, name
, for
следуя условию wtforms (например, transaction-item-0-something
для первого поля, transaction-item-1-something
для второго поля и т. д.).
Один эксперимент, который я сделал, ставил такой же id
а также name
то же самое для списка 2 полей (например, transaction-item-0-something
для 1-го поля, transaction-item-0-something
за 2-е поле). и wtforms только приняли первое входное значение (ожидается).
Второй эксперимент был тот, который меня глючит, я сознательно изменил часть номера, чтобы он пропустил некоторое число (transaction-item-0-something
для 1-го поля, transaction-item-2-something
для 2-го поля), и он работал нормально, wtforms получили оба ввода.
Так что это заставляет меня задуматься, сделать id
а также name
не нужно заказывать? если так, то как wtforms обрабатывают полученный ввод, просто получает все идентификаторы элемента, который содержит transaction-item-x-something
? и просто перебрать его, но также проверить, есть ли там зарегистрированный идентификатор?
1 ответ
На самом деле, я просто покопался в исходном коде и выяснил, что порядок не имеет значения, если это число (.isdigit()
), он будет перебирать все полученные данные и затем помещать их в set
который похож на питона keys
в dictionary
, поэтому повторяющиеся значения будут удалены.
Что означает, что HTML будет отправлять каждый <input>
независимо от его id
или же name
то же самое, и пусть бэкэнд обрабатывает его